是否有通用的方法来检测selenium浏览器何时打开错误页面?例如,禁用您的互联网连接并执行此操作
driver.get("http://google.com")
Run Code Online (Sandbox Code Playgroud)
在Firefox中,Selenium将加载"再试一次"错误页面,其中包含"Firefox无法与www.google.com上的服务器建立连接"等文本.Selenium不会抛出任何错误.
是否有与浏览器无关的方法来检测这些案例?对于firefox(python),我可以做到
if "errorPageContainer" in [ elem.get_attribute("id") for elem in driver.find_elements_by_css_selector("body > div") ]
Run Code Online (Sandbox Code Playgroud)
但是(1)这看似计算过度(见下面的下一点)和(2)我必须为每个浏览器创建自定义代码.
如果您禁用互联网并使用htmlunit作为浏览器,您将获得一个包含以下html的页面
<html>
<head></head>
<body>Unknown host</body>
</html>
Run Code Online (Sandbox Code Playgroud)
如何在不做的情况下检测到这一点
if driver.find_element_by_css_selector("body").text == "Unknown host"
Run Code Online (Sandbox Code Playgroud)
看起来这将是检查每一个页面加载因为通常会是一吨在正文的非常昂贵的.
如果您还知道检测负载问题类型的方法,例如没有互联网连接,无法访问的主机等,则可以获得奖励积分.
我目前正在尝试使用 Selenium WebDriver (JAVA) 2.53 和 Firefox 43.0 执行 TOR 6.0.4。我已按照这篇文章《Using Selenium WebDriver with Tor》中的说明进行操作,但在将 TOR 的 profilePath 加载到 Firefox 二进制文件时遇到错误。我已经看到可以通过将 TOR profile.default 存档加载到 firefox binaty 来午餐 TOR,但在使用配置文件实例化二进制文件时,我得到了驱动程序信息:driver.version:未知。我已经尝试更换firefox版本了,还是不行。在我启动驱动程序的代码下面。我也在使用Windows。
String torPath = "C:\\Users\\Jose Bernhardt\\Desktop\\Tor Browser\\Start Tor Browser.exe";
String profilePath = "C:\\Users\\Jose Bernhardt\\Desktop\\Tor Browser\\Browser\\TorBrowser\\Data\\Browser\\profile.default";
File torProfileDir = new File(profilePath);
FirefoxBinary binary = new FirefoxBinary(new File(torPath));
FirefoxProfile torProfile = new FirefoxProfile(torProfileDir);
FirefoxDriver driver = new FirefoxDriver();
driver.get("http://www.google.com/webhp?complete=1&hl=en");
Run Code Online (Sandbox Code Playgroud)
请参阅下面抛出的异常:
Exception in thread "main" org.openqa.selenium.WebDriverException: Specified firefox binary location does not exist or …Run Code Online (Sandbox Code Playgroud)