我正在尝试启动并运行Selenium服务器.但是,当我键入:
java -jar selenium-server-standalone-2.0b3.jar
Run Code Online (Sandbox Code Playgroud)
我得到一个例外:
Selenium已在端口4444上运行.或者其他一些服务.
我试图阻止它,以防万一它真的在运行:
HTTP://本地主机:4444 /硒 - 服务器/驱动器/ CMD =关机
这让我得到了这样的信息:
错误服务器异常:sessionId不应为null; 这个会议已经开始了吗?
如果我写的话:
我明白了:
HTTP错误:403
禁止代理
想法?
我正在使用远程seleniumwebdriver执行一些测试.但是,在某些时候,我需要下载一个文件并检查其内容.
我使用远程webdriver如下(in python):
PROXY = ...
prefs = {
"profile.default_content_settings.popups":0,
"download.prompt_for_download": "false",
"download.default_directory": os.getcwd(),
}
chrome_options = Options()
chrome_options.add_argument("--disable-extensions")
chrome_options.add_experimental_option("prefs", prefs)
webdriver.DesiredCapabilities.CHROME['proxy'] = {
"httpProxy":PROXY,
"ftpProxy":PROXY,
"sslProxy":PROXY,
"noProxy":None,
"proxyType":"MANUAL",
"class":"org.openqa.selenium.Proxy",
"autodetect":False
}
driver = webdriver.Remote(
command_executor='http://aaa.bbb.ccc:4444/wd/hub',
desired_capabilities=DesiredCapabilities.CHROME)
Run Code Online (Sandbox Code Playgroud)
使用"普通"webdriver,我可以在本地计算机上下载文件而不会出现问题.然后我可以使用测试代码来验证下载文件的内容(可以根据测试参数进行更改).它不是对下载本身的测试,但我需要一种方法来验证生成的文件的内容 ......
但是如何使用远程 webdriver 做到这一点?我在任何地方都找不到任何帮助......
我使用nodejs selenium-standalone,我有:
1)使用role = hub在Mac上运行的selenium-standalone
2)使用role = node在Mac上运行的selenium-standalone(在本地Mac浏览器上运行测试)
3)Windows 10安装在parallels桌面上,运行带有role = node的selenium-standalone
4)关于本文配置IE11 https://github.com/SeleniumHQ/selenium/wiki/InternetExplorerDriver#required-configuration
我在我的测试(yandex gemini)中有gridUrl配置,当我将它设置为windows节点url(http://10.211.55.4:5555/wd/hub)时,IE11测试工作正常.但是当我将gridUrl设置为正确的值(意味着本地网格集线器127.0.0.1:4444/wd/hub)时,IE11会打开"这是WebDriver服务器的初始启动页面".和控制台中"仅允许本地连接".在这种情况下,所有其他Windows浏览器都可以正常工作(chrome,firefox,edge).在mac selenium网格集线器控制台或windows selenium节点控制台中没有任何错误 - 似乎网格集线器不知何故错误地尝试调用Windows节点IEDriver.
启动selenium的命令:
1)MacOS中心:
java -jar 3.8.1-server.jar -role hub
Run Code Online (Sandbox Code Playgroud)
2)Windows10节点:
java -jar 3.8.1-server.jar -role node -hub http://192.168.1.4:4444/grid/register
Run Code Online (Sandbox Code Playgroud)
在此之后,我可以在MacOS http://127.0.0.1:4444/grid/console上看到所有节点和浏览器.
我使用selenium 3.8.1,IEdriver x64 3.8.0
MacOS中心终端截图:
Windows节点cmd截图:
MacOS网格集线器控制台截图与配置:
MacOS网格集线器控制台截图:
集线器和节点的DEBUG模式输出:
Windows节点控制台成功输出(不使用网格集线器直接连接):
2018-01-21 22:07:43.348:INFO:osjshC.ROOT:qtp31280858-9: org.openqa.selenium.remote.server.WebDriverServlet-11d44a3: Initialising WebDriverServlet
22:07:43.379 INFO - Found handler: org.openqa.selenium.remote.server.commandhandler.BeginSession@1f51925
22:07:43.379 INFO - /session: Executing POST on /session (handler: BeginSession)
22:07:43.458 INFO - Capabilities are: Capabilities {browserName: internet explorer, …Run Code Online (Sandbox Code Playgroud) 我试图selenium server standalone在MAC 上手动运行,然后在Chrome浏览器中使用intern-runner运行我的测试.正如我在实习生用户指南中被告知的那样:
"要使用
ChromeDriver和IEDriver使用Selenium服务器,驱动程序可执行文件必须放在环境PATH中的某个位置,或者必须在启动Selenium服务器时使用-Dwebdriver.chrome.driver (ChromeDriver)和-Dwebdriver.ie.driver (IEDriver)标志将它们的位置显式提供给Selenium服务器."
我启动了Selenium服务器并在我的机器上放置了chrome驱动程序的路径,但是出现了错误:
"未知选项:-Dwebdriver.chrome.driver"
关于为什么seleinum无法识别选项的任何想法?
有关如何chrome webdriver/IE webDriver使用selenium独立服务器从命令行运行的其他解决方案吗?
哪里可以将驱动程序可执行文件放在MAC上的环境PATH中?
我可以单独运行chrome驱动程序而不会出现任何问题:
./node_modules/.bin/chromedriver --port=4444 --url-base=wd/hub
Run Code Online (Sandbox Code Playgroud)