【发布时间】:2018-11-16 16:06:54
【问题描述】:
我有以下设置:
- 在“http://localhost:hubPortNum”运行的 Selenium 服务器集线器(使用 Jar 文件 selenium-server-standalone-3.141.5.jar 和参数 -role hub 的服务)。
- 运行“http://localhost:nodePortNum”的 Selenium 节点(带有 Jar 文件的服务,参数为:-Dwebdriver.chrome.driver=ChromeWebdriverPath -role node -port :nodePortNum)。
- 我检查了集线器和节点实例的 URL 以确保它们正常工作。
每当我尝试通过 Python 脚本创建远程 Webdriver 时:
from selenium import webdriver
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
desiredCapabilities = DesiredCapabilities.CHROME.copy()
chromeOptionsRemote = webdriver.ChromeOptions()
chromeOptionsRemote.add_argument("--start-maximized")
chromeOptionsRemote.add_argument("--disable-session-crashed-bubble")
initRemoteDriver = webdriver.Remote(options=chromeOptionsRemote, command_executor='http://127.0.0.1:<nodePortNum>/wd/hub', desired_capabilities=desiredCapabilities)
print(initRemoteDriver.current_url)
最后一行确实打印了当前的 URL(即“data:”),这意味着 Webdriver 已创建。
但是浏览器在我的本地机器上打不开,也就是说它在后台运行,我不知道如何让它可见,虽然它在过去工作过。 p>
我所做的故障排除步骤:
- 重新安装最新的 selenium python 包。
- 重新下载最新的 Selenium 服务器 jar 文件。
- 正在更新 chrome。
- 添加 chromeOptionsRemote.add_argument("--no-sandbox")
-
确保本地 Webdriver 确实打开: 那是一行:
self.localDriver = webdriver.Chrome(options=chromeOptionsLocal, desired_capabilities=desiredCapabilities)确实在本地打开浏览器(Chromedriver 在路径中)。
在完成这些故障排除步骤后,我在远程服务器上尝试了相同的配置并得到了相同的结果(浏览器不可见),所以我认为这可能是设计使然。
我应该为浏览器创建什么配置才能显示?
任何帮助将不胜感激。
【问题讨论】:
标签: selenium selenium-webdriver selenium-chromedriver remotewebdriver selenium-grid2