Python-无法使用HTMLunitdriver与Selenium独立服务器创建会话



我试图使用带有python脚本的htmlunit驱动程序使用硒远程独立服务器。
首先,我使用htmlunit驱动程序启动独立服务器

java -cp htmlunit-driver-2.35.1-jar-with-dependencies.jar -jar selenium-server-standalone-3.141.0.jar

09:28:31.731信息[gridlauncherv3.parse] - 硒服务器版本:3.141.0,修订:2ECB7D9A 09:28:31.810信息[gridlauncherv3.lambda $ buildlaunchers $ 3] - 在端口4444上启动独立的硒服务器 2019-05-08 09:28:31.857:Info :: Main:记录初始化 @317ms to org.seleniumhq.jetty9.util.log.stderrlog 09:28:32.059信息[WebDriverservlet。] - 初始化WebDriverservlet 09:28:32.543信息[seleniumserver.boot] -Selenium Server在端口4444

上启动并运行

之后,我尝试在Pyhton脚本中使用HTMLUNIT驱动程序

from selenium import webdriver
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
from selenium.webdriver.common.keys import Keys
driver = webdriver.Remote(command_executor='http://127.0.0.1:4444/wd/hub',desired_capabilities={'browserName': 'htmlunit', 'version': '2','javascriptEnabled': True})
driver.get("http://www.python.org")
assert "Python" in driver.title
elem = driver.find_element_by_name("q")
elem.clear()
elem.send_keys("pycon")
elem.send_keys(Keys.RETURN)
assert "No results found." not in driver.page_source
driver.close()

但是我收到此错误

selenium.common.exceptions.sessionnotcreatedexception:消息:无法从{ " Desiredcapabilities":{ " browsername":" htmlunit", " JavaScriptEnabled":是的, "版本":" 2" },, "功能":{ " FirstMatch":[ { "浏览":" htmlunit" },, { " browsername":" htmlunit", "浏览":" 2" } 这是给出的 } } 构建信息:版本:'3.141.0',修订:'2ecb7d9a',时间:'2018-10-31T20:22:52' 系统信息:主机:'desktop-xxxx',ip:'xxx.xxx.xxx.xxx',os.name:'windows 10',os.ark:'amd64',os.version:'10 .0',java,java。版本:'1.8.0_212' 驱动程序信息:驱动程序。version:未知 堆栈跟踪: 请访问org.openqa.selenium.remote.server.newsessionpipeline.lambda $ null $ 4(newsessionpipeline.java:76( 在Java.util.optional.orelsethrow(无:-1( 请访问org.openqa.selenium.remote.server.newsessionpipeline.lambda $ creatsEnewsession $ 5(newsessionpipeline.java:75( 在java.util.optional.orelseget(无:-1( 请访问org.openqa.selenium.remote.server.newsessionpipeline.createnewsession(newsessionpipeline.java:73( 请访问org.openqa.selenium.remote.server.commandhandler.beginsession.execute(开始 atrg.openqa.selenium.remote.server.webdriverservlet.lambda $ whand $ 0(webdriverservlet.java:235( at Java.util.concurrent.executors $ runnableDapter.call(无:-1( 在java.util.concurrent.futuretask.run(无:-1( at Java.util.concurrent.threadpoolexecutor.runworker(无:-1( at Java.util.concurrent.threadpoolexecutor $ worker.run(无:-1( 在java.lang.thread.run(无:-1(

我似乎已经正确遵循了文档,但是我不明白错误在哪里。
您能告诉我如何解决问题?

谢谢

根据 java命令行文档:

使用-jar选项时,指定的JAR文件是所有用户类的来源,其他类路径设置被忽略

因此,您需要修改所用的命令来启动硒网格以看起来像:

java -cp "htmlunit-driver-2.35.1-jar-with-dependencies.jar;selenium-server-standalone-3.141.59.jar" org.openqa.grid.selenium.GridLauncherV3

我也建议更改此行:

driver = webdriver.Remote(command_executor='http://127.0.0.1:4444/wd/hub',desired_capabilities={'browserName': 'htmlunit', 'version': '2','javascriptEnabled': True})

对此:

driver = webdriver.Remote(command_executor='http://127.0.0.1:4444/wd/hub',desired_capabilities=webdriver.DesiredCapabilities.HTMLUNITWITHJS)

以这种方式,您的脚本有更好的机会在未来的图书馆升级

中幸存下来

最新更新