相关疑难解决方法(0)

当您使用含硒的硒时,网站是否可以检测到?

我一直在用Chromedriver测试Selenium,我注意到有些页面可以检测到你正在使用Selenium,即使根本没有自动化.即使我只是通过Selenium和Xephyr使用chrome手动浏览我经常会得到一个页面,说明检测到可疑活动.我检查了我的用户代理和浏览器指纹,它们与普通的Chrome浏览器完全相同.

当我在普通镀铬中浏览这些网站时,一切正常,但是当我使用Selenium的时候,我已经检测到了.

从理论上讲,chromedriver和chrome应该看起来与任何网络服务器完全相同,但不知怎的,他们可以检测到它.

如果你想要一些测试代码试试这个:

from pyvirtualdisplay import Display
from selenium import webdriver

display = Display(visible=1, size=(1600, 902))
display.start()
chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument('--disable-extensions')
chrome_options.add_argument('--profile-directory=Default')
chrome_options.add_argument("--incognito")
chrome_options.add_argument("--disable-plugins-discovery");
chrome_options.add_argument("--start-maximized")
driver = webdriver.Chrome(chrome_options=chrome_options)
driver.delete_all_cookies()
driver.set_window_size(800,800)
driver.set_window_position(0,0)
print 'arguments done'
driver.get('http://stubhub.com')
Run Code Online (Sandbox Code Playgroud)

如果您浏览stubhub,您将在一两个请求中被重定向和"阻止".我一直在研究这个,我无法弄清楚他们如何判断用户是否正在使用Selenium.

他们是如何做到的呢?

编辑更新:

我在Firefox中安装了Selenium IDE插件,当我在普通的firefox浏览器中使用附加插件访问stubhub.com时,我被禁止了.

编辑:

当我使用Fiddler来查看来回发送的HTTP请求时,我注意到"假浏览器"的请求通常在响应头中有"无缓存".

编辑:

这样的结果是否有办法检测到我在Javascript的Selenium Webdriver页面中建议无法检测何时使用webdriver.但是这个证据表明不然.

编辑:

该网站将指纹上传到他们的服务器,但我检查了使用chrome时硒的​​指纹与指纹相同.

编辑:

这是他们发送到服务器的指纹有效负载之一

{"appName":"Netscape","platform":"Linuxx86_64","cookies":1,"syslang":"en-US","userlang":"en-US","cpu":"","productSub":"20030107","setTimeout":1,"setInterval":1,"plugins":{"0":"ChromePDFViewer","1":"ShockwaveFlash","2":"WidevineContentDecryptionModule","3":"NativeClient","4":"ChromePDFViewer"},"mimeTypes":{"0":"application/pdf","1":"ShockwaveFlashapplication/x-shockwave-flash","2":"FutureSplashPlayerapplication/futuresplash","3":"WidevineContentDecryptionModuleapplication/x-ppapi-widevine-cdm","4":"NativeClientExecutableapplication/x-nacl","5":"PortableNativeClientExecutableapplication/x-pnacl","6":"PortableDocumentFormatapplication/x-google-chrome-pdf"},"screen":{"width":1600,"height":900,"colorDepth":24},"fonts":{"0":"monospace","1":"DejaVuSerif","2":"Georgia","3":"DejaVuSans","4":"TrebuchetMS","5":"Verdana","6":"AndaleMono","7":"DejaVuSansMono","8":"LiberationMono","9":"NimbusMonoL","10":"CourierNew","11":"Courier"}}
Run Code Online (Sandbox Code Playgroud)

它的硒和铬相同

编辑:

VPN仅供一次使用,但在加载第一页后会被检测到.很明显,正在运行一些javascript来检测Selenium.

javascript python selenium google-chrome selenium-chromedriver

303
推荐指数
21
解决办法
13万
查看次数

使用硒加载铬延伸

我想要的只是从网上商店加载chrome扩展程序.我做了很多搜索来弄明白,但只知道我们可以从本地机器加载扩展.我真的很想知道selenium是否具有从网上商店或网址加载扩展程序的功能.

请让我知道我正在尝试使用硒?

selenium google-chrome-extension google-chrome-devtools selenium-webdriver

13
推荐指数
4
解决办法
4万
查看次数

如何选择Chrome扩展程序以在使用Selenium时启用

我使用Selenium网络驱动程序开发使用Chrome作为浏览器的自动化测试.我正在使用Python.

当Selenium打开Chrome时,我的Chrome浏览器上有一个扩展程序.问题是,当Selenium打开Chrome时,默认情况下会禁用所有扩展程序.

当Selenium运行时,如何在Chrome浏览器上启用所有或某个扩展程序?

python selenium webdriver web-testing google-chrome-extension

5
推荐指数
1
解决办法
2176
查看次数

无法运行Chrome selenium"未知错误:无法处理扩展程序#1"

我正在尝试运行chrome selenium驱动程序并添加一个扩展:

manifest_json = """..... """
background_js = """...."""
ext_file = 'my_extention.zip'
with zipfile.ZipFile(ext_file, 'w') as zp:
    zp.writestr("manifest.json", manifest_json)
    zp.writestr("background.js", background_js)

co = webdriver.ChromeOptions()
co.add_extension(ext_file)
d = webdriver.Chrome(chrome_options=co)
Run Code Online (Sandbox Code Playgroud)

这引发了一个错误:

raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.WebDriverException: Message: unknown error: cannot process extension #1
from unknown error: invalid public key length
  (Driver info: chromedriver=2.9.248304,platform=Linux 3.19.0-39-generic x86_64)
Run Code Online (Sandbox Code Playgroud)

python selenium google-chrome

5
推荐指数
1
解决办法
2398
查看次数

如何将 EXTERNAL 扩展添加到 selenium (chrome) python

更新的问题:

在这一点上,如果有人可以给我任何关于如何在运行时在 selenium 中添加任何类型的扩展的提示,我的目标是能够运行脚本并让 chrome 安装并激活扩展,因为从什么时候开始您运行 chromedriver,chrome 就像香草一样(没有安装扩展或活动) , 如果有人有任何见解,我将不胜感激!!!

原帖如下

我正在尝试在使用 selenium 时解除阻止 origin 扩展以在我的 chrome 上工作,并且上面的代码似乎失败了,我已经尝试了一些方法来让它工作,但都失败了,所有试图让它工作的尝试都是根据我在此处或在 youtube 上阅读的内容!如果有人能在这里帮助我,那就太好了!

整个代码的导入,我对 selenium 非常陌生,所以我放置了所有我仍在使用的库的导入,以弄清楚什么是做什么的。

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.select import Select
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.common.exceptions import TimeoutException
Run Code Online (Sandbox Code Playgroud)

第一次尝试:

option = webdriver.ChromeOptions()
option.add_argument('load-extension=' + 'uBlock-Origin_v1.16.18.crx')
Run Code Online (Sandbox Code Playgroud)

第二次尝试:

path_to_extension("C:\Selenium\uBlock-Origin_v1.16.18.crx")

option = webdriver.ChromeOptions()
option.add_argument('load-extension=' + path_to_extension)
Run Code Online (Sandbox Code Playgroud)

第三次尝试:

#adding ublock Origin
path_to_extension = (r'C:\Selenium\1.16.18_0')

# example option: add 'incognito' …
Run Code Online (Sandbox Code Playgroud)

python selenium python-3.x selenium-chromedriver

2
推荐指数
1
解决办法
3203
查看次数

Selenium ChromeDriver,无法启动已加载扩展的 Google Chrome

我正在使用 Selenium 2.0 为我的 Google Chrome 扩展创建自动化测试:

  1. WebdriverJS + NodeJS
  2. Chrome驱动程序
  3. MacOS X 10.8.4

首先,我也想测试安装过程,但是当使用 Selenium 弹出安装对话框时,似乎无法单击“添加”按钮。(我关于这个的另一个问题)。

现在,我改变了计划。我不想在测试过程中安装扩展程序,而是想在安装扩展程序的情况下启动 Chrome。但我还没有成功。

请看下面的代码:

var webdriver = require('selenium-webdriver'),
    chrome = require('selenium-webdriver/chrome');

var o = new chrome.Options();
o.addExtensions(['extensions/chrome/chrome_extension.zip']); // crx file is just a zip file
var s = new chrome.ServiceBuilder('bin/chromedriver').build();
var driver = chrome.createDriver(o, s)
Run Code Online (Sandbox Code Playgroud)

当我运行上面的代码时,出现以下错误: 在此输入图像描述

我注意到 ChromeDriver 在打开 Chrome 时会加载一个名为“Chrome Automation Extension 1”的 Chrome 扩展,因此必须有一种方法来加载另一个扩展,要么使用应用程序 ID 直接从 Webstore 加载,要么从本地计算机加载- 已包装或未包装。

任何帮助将不胜感激!

selenium google-chrome-extension selenium-chromedriver selenium-webdriver

0
推荐指数
1
解决办法
6152
查看次数