如果是这样,怎么办?
此外,这样做有什么好处?
由于浏览器未打开,您是否还需要在代码中保留等待(线程等待和隐式等待)?
#1 楼
一种选择是HTMLUnit,它没有头,但是具有自己的专有JavaScript呈现引擎,因此它的行为可能与现有浏览器不同(如果您使用HTMLUnit,请不要忘记在实例化时启用JavaScript)。 br />第二个选择是使用XVFB;这将在虚拟帧缓冲区环境中运行测试。在Selenium用户邮件列表和Selenium博客上已经多次报道了此消息,有关某些XVFB实现,请参见此帖子。
直接链接到教程:
functional-headless-ui-testing-django-selenium
观看player_embedded
如果您搜索Selenium和XVFB,则会发现更多信息。 br />
评论
看起来其中一些链接断开了
– MacGyver
13年11月11日在2:01
主站点:wiki.jenkins-ci.org/display/JENKINS/Meet+Jenkins
– MacGyver
13年3月11日在2:14
XVFB:wiki.jenkins-ci.org/display/JENKINS/Xvfb+Plugin
– MacGyver
13年11月11日在2:17
#2 楼
隐藏没有XVFB的浏览器非常容易。只需安装PhantomJS。然后,更改以下行:driver = webdriver.Firefox()
至:
driver = webdriver.PhantomJS()
其余的代码不会需要更改,并且不会打开任何浏览器。为了进行调试,请在代码的不同步骤使用
driver.save_screenshot('screen.png')
。评论
Chrome测试是否一样?
–有人
16年1月15日在18:20
但是,如果您使用JavaScript,则可能会遇到问题。如果您使用的是Chrome,则可能会出现跨浏览器脚本问题。 @nexoma的答案可能解决了这个问题,但不确定使用无头chrome的javascript处理什么。
–迈克尔·杜兰特(Michael Durrant)
17年5月29日在18:10
我相信PhantomJS的名称中带有JS是有原因的;它可以完美地处理Javascript-不确定为什么在这里提到Chrome
–StéphaneBruckert
17年5月29日在18:22
#3 楼
您以前可以使用PhantomJS,但由于PhantomJS本身已停产,因此Selenium PhantomJS驱动程序也已停产。好消息是,您可以简单地使用Chrome。 Chrome本身具有无需实际浏览器窗口即可运行的功能。
因此,实例化chrome驱动程序后,您只需添加说明即可无头工作。 br />
源
#4 楼
您可以尝试在HtmlUnitDriver实例中运行测试。我试图查看有关此文档,但是最新版本中的chm文件似乎已被破坏。也有WebkitDriver,但这似乎只是暂时的Java。
评论
提醒:如果您使用HtmlUnitDriver,则不能保证相同的测试将在实际的浏览器中实际运行。
–user246
2012年2月8日在18:46
我今天在WebDriver Wiki上读到,HTMLUnitDriver仅适用于Java客户端驱动程序,因此由于我们使用C#客户端驱动程序,因此我将无法使用此方法。 :-\但我感谢您的投入!
– MacGyver
2012年2月9日在16:21
#5 楼
您可以使用HTMLUnitDriver来运行测试,HTMLUnitDriver是大多数Webdriver中最快,最轻巧的评论
我们使用C#驱动程序和NUnit,所以我不得不用Java重新编写所有内容,不是吗?
– MacGyver
2012年2月9日在16:19
语法因语言而异,但是您要测试的逻辑保持不变
–saikrishna
2012年2月13日在7:22
@MacGyver:不,您不必切换语言,可以将HTMLUnit视为启动的浏览器,而不是测试框架。对您来说,用哪种语言编写都无所谓,就像对Firefox等无关紧要。至少,您始终可以启动selenium服务器并使用webdriver绑定连接到它,并指定要使用HTMLUnit。在C#中:IWebDriver驱动器=新的RemoteWebDriver(DesiredCapabilities.HtmlUnit()); C#绑定中可能还会有一个HTMLUnitDriver(用于直接连接),因为C#属于四种官方支持的语言。
–zpea
2012年7月11日18:47
#6 楼
只需使用以下代码将您当前选择的浏览器作为无头浏览器运行,无头浏览器意味着您在运行代码时将不会打开浏览器。 from selenium.webdriver.chrome.options import Options
options = Options()
options.add_argument("--headless")
self.driver = webdriver.Chrome(options=options)
#7 楼
或者,我们需要至少导入以下软件包: br />
然后像往常一样继续执行您的任务。
评论
相关:sqa.stackexchange.com/questions/2538/…您可以使用无头浏览器。如PhantomJS,HtmlUnitDriver等。