【发布时间】:2021-11-03 10:27:21
【问题描述】:
我使用以下命令在同一台机器上启动了集线器和节点:
xvfb-run -a java -Dwebdriver.chrome.driver=/usr/bin/chromedriver -jar selenium-server-standalone.jar -role hub
xvfb-run -a java -Dwebdriver.chrome.driver=/usr/bin/chromedriver -jar selenium-server-standalone.jar -port 7777 -role node -hub http://192.168.111.253:4444/grid/register -browser browserName="chrome",version=ANY,platform=LINUX,maxInstances=5
我正在尝试使用以下代码实例化浏览器窗口:
options = webdriver.ChromeOptions()
options.add_argument("no-sandbox")
options.add_argument("--disable-gpu")
options.add_argument("--window-size=800,600")
options.add_argument("--disable-dev-shm-usage")
browser = webdriver.Remote(
command_executor=f"http://192.168.111.253:4444/wd/hub",
options=options
)
browser.get(r"https://www.google.com")
页面获取成功,我可以使用 browser.page_source 查看页面的 HTML 代码,但 Chrome 窗口未在节点上打开。我根本没有指定无头选项。我正在使用 95 版的 Chrome 和 Chromedriver。
请注意,我在托管在充当 selenium 服务器和节点的同一台机器上的 jupyter 笔记本上运行代码。我正在从同一 LAN 上的另一台计算机访问笔记本。
任何帮助将不胜感激。谢谢。
【问题讨论】:
-
您正在使用虚拟帧缓冲区(又名虚拟屏幕)。你怎么知道窗口没有出现在那个虚拟屏幕上?
-
@AlexeyR。在提供的选项中,我没有提到类似的东西。我是 Selenium 的初学者。你能详细说明一下吗?如果是这个原因,我们该怎么做才能看到一个实际的窗口?
标签: python selenium google-chrome selenium-webdriver selenium-chromedriver