在chrome浏览器上自动执行的selenium代码。
chrome版本:79.0.3945.117(本地和服务器计算机相同)
chrome驱动程序:试用了所有最新版本
执行状态-在本地计算机上:在headless和gui中运行良好。
执行状态-在服务器Centros 7机器上。在无头模式下效果很好。在GUI中给出错误:
options.addArguments("--no-sandbox"); // Bypass OS security model
options.addArguments("--disable-dev-shm-usage"); // overcome limited resource problems
错误日志
SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
>>>>> Initializing the webdriver: CHROME on OS: linux64
Jan 11, 2020 12:27:52 PM org.openqa.selenium.remote.DesiredCapabilities chrome
INFO: Using `new ChromeOptions()` is preferred to `DesiredCapabilities.chrome()`
Starting ChromeDriver 79.0.3945.36 (3582db32b33893869b8c1339e8f4d9ed1816f143-refs/branch-heads/3945@{#614}) on port 16949
Only local connections are allowed.
Please protect ports used by ChromeDriver and related test frameworks to prevent access by malicious code.
>>>>> Initializing the webdriver: CHROME on OS: linux64
unknown error: Chrome failed to start: exited abnormally
(unknown error: DevToolsActivePort file doesn't exist)
(The process started from chrome location /usr/bin/google-chrome is no longer running, so ChromeDriver is assuming that Chrome has crashed.)
Build info: version: '3.141.59', revision: 'e82be7d358', time: '2018-11-14T08:17:03'
System info: host: 'qa9', ip: '', os.name: 'Linux', os.arch: 'amd64', os.version: '3.10.0-1062.9.1.el7.x86_64', java.version: '1.8.0_232'
Driver info: driver.version: ChromeDriver
remote stacktrace: #0 0x564eeb93d479 <unknown>
Jan 11, 2020 12:27:52 PM org.openqa.selenium.remote.DesiredCapabilities chrome
INFO: Using `new ChromeOptions()` is preferred to `DesiredCapabilities.chrome()`
null
2020-01-11 12:27:52 INFO BaseClass:23 - Test Completed
分析
1-Chrome在服务器机器上打开罚款。
2-在服务器上使用google chrome--无沙盒启动chrome
3-google-chrome可在位置 /usr/bin/google-chrome
因此,尝试了其他答案中可用的所有步骤,并使用各种chrome选项,但仍然无法在chrome gui上运行selenium。
options.addArguments("--no-sandbox"); // Bypass OS security model
options.setBinary("/usr/bin/google-chrome");
options.addArguments("start-maximized"); // open Browser in maximized mode
options.addArguments("disable-infobars"); // disabling infobars
options.addArguments("--disable-dev-shm-usage"); // overcome limited resource problems
options.addArguments("--test-type");
options.addArguments("--window-size=1420,1080");
options.addArguments("--disable-extensions"); //to disable browser extension popup
options.addArguments("--headless");
options.addArguments("--disable-gpu"); // applicable to windows os only
options.setExperimentalOption("useAutomationExtension", false);
options.addArguments("--disable-dev-shm-usage"); // overcome limited resource problems
ChromeDriver日志
[1578754796.203][INFO]: Launching chrome: /usr/bin/google-chrome --disable-background-networking --disable-client-side-phishing-detection --disable-default-apps --disable-dev-shm-usage --disable-hang-monitor --disable-popup-blocking --disable-prompt-on-repost --disable-sync --enable-blink-features=ShadowDOMV0 --enable-logging --log-level=0 --no-first-run --no-sandbox --password-store=basic --remote-debugging-port=0 --start-maximized --test-type --use-mock-keychain --user-data-dir=/tmp/.com.google.Chrome.CKtLXZ --window-size=1420,1080 data:,
(google-chrome:29029): Gtk-WARNING **: 15:59:56.269: cannot open display:
[0111/155956.272402:ERROR:nacl_helper_linux.cc(311)] NaCl helper process running without a sandbox!
Most likely you need to configure your SUID sandbox correctly
[1578754796.304][INFO]: [e36d644ac30ae2e028b2ee00ba18b335] RESPONSE InitSession ERROR unknown error: Chrome failed to start: exited abnormally
(unknown error: DevToolsActivePort file doesn't exist)
(The process started from chrome location /usr/bin/google-chrome is no longer running, so ChromeDriver is assuming that Chrome has crashed.)
[1578754796.304][DEBUG]: Log type 'driver' lost 0 entries on destruction
[1578754796.304][DEBUG]: Log type 'browser' lost 0 entries on destruction
我遇到了这个问题。我安装了最新版本的“网络驱动程序”Rubygem(~
whereis google-chrome
并获得“/usr/bin/google-chrome”
我使用ruby,现在可以用
options = Selenium::WebDriver::Chrome::Options.new(args: ['headless'], binary: '/usr/bin/google-chrome')
driver = Selenium::WebDriver.for(:chrome, options: options)
这里提供的答案表明Chrome版本
此错误消息...
unknown error: Chrome failed to start: exited abnormally (unknown error: DevToolsActivePort file doesn't exist) (The process started from chrome location /usr/bin/google-chrome is no longer running, so ChromeDriver is assuming that Chrome has crashed.)
...暗示ChromeDriver无法启动/生成新的浏览上下文,即Chrome浏览器会话。
你需要注意几件事:
>
参数“禁用gpu”的目的是在windows平台上启用google chrome headless。这是必要的,因为之前SwiftShader在无头模式下无法在Windows上执行断言。这个问题通过Headless解决了:make-disable gpu标志不必要。在centos上,您需要删除代码行:
options.addArguments("--disable-gpu"); // applicable to windows os only
当您添加实验选项时:
options.setExperimentalOption("useAutomationExtension", false);
>
options.setExperimentalOption("excludeSwitches", Collections.singletonList("enable-automation"));
但您需要删除:
options.addArguments("disable-infobars"); // disabling infobars
options.addArguments("--disable-extensions"); //to disable browser extension popup
有关详细讨论,请参见:
我做我的代码在CromeDrive在'正常'模式和工作正常。当我切换到无头模式时,它不会下载文件。我已经尝试了我在互联网上找到的代码,但是不起作用。 有人知道如何解决这个问题吗? PS:我不一定要用Chomedrive。如果它在另一个驱动器中工作,对我来说没问题。
我用的是chrome第77版,测试一些下载。但我不明白为什么它不让在无头模式下下载文件(只发生在无头模式下)。这是我正在使用的代码。 _chromeOptions。AddUserProfilePreference(" download . default _ Directory " ,@ "目录文件夹");_chromeOptions。adduser profile preference(" in
到目前为止,我所有的测试都运行正常,为了提高速度,我尝试在无头模式下运行所有测试,但其中一个测试失败,其中一个错误如下: 返回该错误的行是 其他人被截获: 生成错误的行是: 我真正的问题是:无头模式有任何限制吗?有没有初学者的知识,我应该使用无头模式?为什么会这样?
问题内容: 我以为Python交互模式下的显示总是等效的,但是事实并非如此。这是语言功能还是我缺少什么?谢谢 问题答案: 是的,此行为是故意的。 来自Python文档 7.1。表达陈述 Expression语句(通常是交互式地)用于计算和写入值,或(通常)用于调用过程(一个不返回有意义结果的函数;在Python中,过程返回value )。表达式语句的其他用法是允许的,有时是有用的。表达式语句的语法
这就是我遇到麻烦的代码: 错误是: 当我执行脚本时,我没有任何chrome实例,当我使用它时没有选项,它工作正常。知道为什么会这样吗?请注意,我使用的是类似问题中提供的。 我用的是ChromeDriver 86.0.4240.22
如果我们有一个运行sikuli的无头测试服务器(需要ubuntu和Windows配置),如何在没有物理显示器的情况下使其工作,并且最好是尽可能多的屏幕分辨率。