我正在尝试运行一个使用webdriver的python脚本。在ubuntu服务器上使用CHROME浏览器进行远程访问。我在服务器中设置了一个selenium网格(一个集线器和一个节点),并使用systemd服务文件将集线器和节点以及xvfb作为后台进程运行。但是,运行python文件给了我一个:selenium。常见的例外情况。WebDriverException:
我一直在制造新的水滴,花了无数个小时调试出了什么问题。
[Unit]
Description=X Virtual Frame Buffer Service
After=network.target
[Service]
ExecStart=/usr/bin/Xvfb :5 -screen 0 1024x768x8
[Install]
WantedBy=multi-user.target
[Unit]
Description=Selenium Hub
After=syslog.target network.target
[Service]
User=root
Type=simple
Environment=DISPLAY=:5
ExecStart=/usr/bin/java -Dwebdriver.gecko.driver=/usr/local/bin/geckodriver -Dwebdriver.chrome.bin=/usr/bin/google-chrome -Dwebdriver.chrome.driver=/usr/local/bin/chromedriver -jar /usr/local/bin/selenium-server-standalone.jar -role hub -log /var/log/selenium-hub/output.log
[Install]
WantedBy=multi-user.target
....
[Service]
User=root
Type=simple
Environment=DISPLAY=:5
ExecStart=/usr/bin/java -Dwebdriver.gecko.driver=/usr/local/bin/geckodriver -Dwebdriver.chrome.bin=/usr/bin/google-chrome -Dwebdriver.chrome.driver=/usr/local/bin/chromedriver -jar /usr/local/bin/selenium-server-standalone.jar -role node -hub http://localhost:4444/grid/register -log /var/log/selenium-node/output.log
selenium.common.exceptions.WebDriverException: Message: None
Stacktrace:
at java.util.HashMap.putMapEntries (HashMap.java:500)
at java.util.HashMap.putAll (HashMap.java:784)
at org.openqa.selenium.remote.DesiredCapabilities.<init> (DesiredCapabilities.java:55)
at org.openqa.grid.web.servlet.handler.RequestHandler.process (RequestHandler.java:104)
....
at org.seleniumhq.jetty9.util.thread.QueuedThreadPool.runJob (QueuedThreadPool.java:672
at org.seleniumhq.jetty9.util.thread.QueuedThreadPool$2.run (QueuedThreadPool.java:590
at java.lang.Thread.run (Thread.java:745)
def create_driver():
command_executor = 'http://localhost:4444/wd/hub' # default
capabilities = {
'browserName': 'chrome',
'version': '',
'platform': 'ANY',
'javascriptEnabled': 'True',
# 'acceptSslCerts': 'False',
# 'unexpectedAlertBehaviour': 'True',
'chromeOptions': {
'args': [
'--disable-extensions',
'--no-sandbox',
'--disable-setuid-sandbox',
'--verbose',
'--log-path=/var/log/chromedriver-full.log',
'--disable-impl-side-painting',
'--memory-model=high',
'--disk-cache-size=500000000',
'--allow-running-insecure-content',
'--ignore-certificate-errors',
'--ignore-urlfetcher-cert-requests',
'--disable-gpu',
'--disk-cache-dir=null',
],
# 'extensions': [],
# 'binary': '/usr/bin/chromium-browser',
# 'minidumpPath': '/root/'
},
'loggingPrefs': {'driver': 'ALL', 'server': 'ALL', 'browser': 'ALL', 'performance': 'ALL'}
}
driver = webdriver.Remote(desired_capabilities=capabilities, command_executor=command_executor)
time.sleep(5) # Let the user actually see something!
driver.implicitly_wait(60)
return driver
def main():
print("Running remote web driver test")
driver = create_driver()
driver.get("https://www.google.com.ph")
print(driver.current_url)
screenshot = driver.save_screenshot('/root/test.png')
print(screenshot)
driver.quit()
display.stop()
print("Success test on remote web driver")
main()
我在测试硒附加物时也犯了同样的错误...
我认为python selenium的最新版本(3.4.1)在与selenium网格(集线器节点)交互时有一个bug,而在独立模式下运行良好。
我使用较旧的python selenium解决了这个问题:
pip show selenium | grep -i version
Version: 2.48.0
如果安装了pip,可以先卸载它:
pip uninstall selenium
然后尝试不同的版本,我成功地尝试了APT提供的相同版本:
pip install selenium==2.48.0
也许一些后来的版本正在工作,但没有尝试。
再见
我正在尝试将两台vm机器相互连接(在win10上同时运行)。我下载了java JDK 15和 selenium-server-4.0.0-alpha-6.jar 我正在运行我的集线器,复制我在那里得到的TCP URL(tcp://hub:4442/3)到我的第二台机器。 但在运行node命令后,我收到了以下消息: 开始节点ID X的注册过程 一切都悬而未决。。。我试过使用Test NetConne
问题内容: 我当前的设置是我有一个seleniumRC作为Windows计算机上的集线器运行(假设计算机名称为machine.name.com)。我已经使用以下命令启动它 我有一个selenium节点运行在注册到上述节点的同一台计算机上。我已经使用以下命令来启动节点 该节点已成功注册,我也可以对该节点进行测试。 现在,我有另一台机器(一台LINUX机器- 假设此机器的IP地址为10.123.123
我正在研究一套Selenium WebDriver(不是Selenium RC,也不使用Selenium-Server)测试,这些测试通过对mstest的命令行调用执行。我将它们分解为我们计划测试的每个浏览器的测试类(目前是Chrome、Firefox和IE9),每个测试类都有一个启动方法,它登录到测试中的系统,然后执行请求的测试,还有一个拆分方法,它使用webdriver.quit()关闭浏览器
我正在使用maven运行spring集成测试。我试图在启用调试端口的情况下运行它,这样我就可以从IntelliJ idea连接到它。 下面的命令行在过去工作过。它用于允许surefire启动初始化,然后等待连接到端口8000,然后继续测试: 然而,这给了我以下例外: [错误]在当前项目和插件组[com.zillow,org.apache.maven.plugins,org.codehaus.moj
我们在2000年左右有一组自动化测试用例,我们需要每天在每一个新的构建上运行它们。目前在一台机器上完成测试需要4个小时。为了减少这一点,我们计划通过启动多个相同类型的浏览器,在同一台机器上分批运行测试(每批500个)。假设每个测试套件有4个firefox浏览器会话。所以它可以在1小时内完成。使用selenium webdriver和TestNG可以实现吗?请建议。
我在试着运行硒网格, 详细信息:win 7,selenium 2.4.5,selenium-server-独立-2.46.0,java 8,我得到一个错误: 无法启动新会话。可能的原因是远程服务器地址无效或浏览器启动失败。生成信息:版本:'2.45。0',修订版:'5017cb8e7ca8e37638dc3091b2440b90a1d8686f',时间:'2015-02-27 09:10:26'系