我一直在用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')
如果您浏览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"}}
它的硒和铬相同
编辑:
VPN仅供一次使用,但在加载第一页后会被检测到.很明显,正在运行一些javascript来检测Selenium.
javascript python selenium google-chrome selenium-chromedriver
我试过这个
WebDriver driver = new ChromeDriver();
但我得到的错误是
测试失败:setUp(com.TEST):驱动程序可执行文件的路径必须由webdriver.chrome.driver系统属性设置; 有关更多信息,请参阅此处的代码.最新版本可以从Link下载
如何让Chrome测试Selenium-WebDriver测试用例?
自上周发布chrome(34.0.1847.116)以来,我在使用watir-webdriver运行自动化测试时收到了"禁用开发人员模式扩展".
这似乎是令人反感的延伸,但对我来说这是一个潜在危险的扩展,因为它是由chromedriver使用的.
任何已找到此修复程序的人,因为我无法回滚到以前的版本或找到旧版本的安装程序回滚到这对我的测试造成严重破坏.


google-chrome google-chrome-extension watir-webdriver selenium-chromedriver
我正在使用selenium和python,并从我的网站下载了我的Windows计算机的chromedriver:http://chromedriver.storage.googleapis.com/index.html?path = 2.15 /
下载zip文件后,我将zip文件解压缩到我的下载文件夹.然后我将路径到可执行二进制文件(C:\ Users\michael\Downloads\chromedriver_win32)放入环境变量"路径".
但是,当我运行以下代码时:
  from selenium import webdriver
  driver = webdriver.Chrome()
...我一直收到以下错误消息:
WebDriverException: Message: 'chromedriver' executable needs to be available in the path. Please look at     http://docs.seleniumhq.org/download/#thirdPartyDrivers and read up at http://code.google.com/p/selenium/wiki/ChromeDriver
但是 - 如上所述 - 可执行文件是(!)在路径中...这里发生了什么?
我正在尝试使用URL启动chrome,浏览器启动,之后它什么都不做.
我在1分钟后看到以下错误:
Unable to open browser with url: 'https://www.google.com' (Root cause: org.openqa.selenium.WebDriverException: unknown error: DevToolsActivePort file doesn't exist
  (Driver info: chromedriver=2.39.562718 (9a2698cba08cf5a471a29d30c8b3e12becabb0e9),platform=Windows NT 10.0.15063 x86_64) (WARNING: The server did not provide any stacktrace information)
我的配置:
Chrome:66 ChromeBrowser:2.39.56
PS在Firefox中一切正常
selenium google-chrome webdriver selenium-chromedriver selenium-webdriver
我正在尝试让 Selenium 与 Chrome 一起使用,但我不断遇到此错误消息(以及其他类似的错误消息):
AttributeError:“WebDriver”对象没有属性“find_element_by_name”
find_element_by_id()、find_element_by_class()等也会出现同样的问题。
我也打不通电话send_keys()。
我只是运行ChromeDriver - WebDriver for Chrome - Getting Started中提供的测试代码。
import time
from selenium import webdriver
driver = webdriver.Chrome("C:/Program Files/Chrome Driver/chromedriver.exe")  # Path to where I installed the web driver
driver.get('http://www.google.com/');
time.sleep(5) # Let the user actually see something!
search_box = driver.find_element_by_name('q')
search_box.send_keys('ChromeDriver')
search_box.submit()
time.sleep(5) # Let the user actually see something!
driver.quit()
我使用的是 Google Chrome 版本 103.0.5060.53 并从Downloads下载了 ChromeDriver 103.0.5060.53 。
运行代码时,Chrome 打开并导航到 google.com,但它收到以下输出: …
python selenium google-chrome selenium-chromedriver selenium-webdriver
我目前是机器人框架的新手。我目前正在使用最新的 chrome 和 chromedriver 窗口版本,它是 80,但是当我尝试运行测试时,它给出消息“SessionNotCreatedException:消息:未创建会话:此版本的 ChromeDriver 仅支持 Chrome pycharm 中的版本 81”,但目前仅提供 81 的测试版。我试过卸载所有东西并重新安装它,但没有任何效果任何人都可以帮助我解决这个问题。谢谢!
selenium google-chrome robotframework selenium-chromedriver selenium-webdriver
我设置了一个python代码来运行Selenium chromedriver.exe.在运行结束时,我必须browser.close()关闭实例.(browser = webdriver.Chrome())我相信它应该chromedriver.exe从内存中释放(我在Windows 7上).但是,每次运行后chromedriver.exe,内存中仍有一个实例.我希望有一种方法可以在python中编写一些东西来杀死chromedriver.exe进程.显然browser.close()不做这项工作.谢谢.
我正在尝试使用rsDriver函数运行RSelenium,但是当我运行时,出现 
 rD <- rsDriver()
一条消息告诉我我需要更新版本的Chrome:
> rD <- rsDriver()
checking Selenium Server versions:
BEGIN: PREDOWNLOAD
BEGIN: DOWNLOAD
BEGIN: POSTDOWNLOAD
checking chromedriver versions:
BEGIN: PREDOWNLOAD
BEGIN: DOWNLOAD
BEGIN: POSTDOWNLOAD
checking geckodriver versions:
BEGIN: PREDOWNLOAD
BEGIN: DOWNLOAD
BEGIN: POSTDOWNLOAD
checking phantomjs versions:
BEGIN: PREDOWNLOAD
BEGIN: DOWNLOAD
BEGIN: POSTDOWNLOAD
[1] "Connecting to remote server"
Selenium message:session not created: This version of ChromeDriver only supports Chrome version 74
  (Driver info: chromedriver=74.0.3729.6 (255758eccf3d244491b8a1317aa76e1ce10d57e9-refs/branch-heads/3729@{#29}),platform=Mac OS X 10.14.3 x86_64)
Could not open chrome browser.
Client error message: …当我使用WebDriver运行Chrome浏览器时,我在控制台上收到以下消息.请让我知道如何解决它.
"在端口22582上启动ChromeDriver(v2.10.267521)""仅允许本地连接."
这是我的示例代码:
public class Browserlaunch {
    public static void main(String[] args) {
        System.setProperty("webdriver.chrome.driver", "C:\\chromedriver_win32   \\chromedriver.exe");
        WebDriver driver = new ChromeDriver() ;
        driver.get("http://webdunia.com");
        driver.close();
        driver.quit();
    }
}