当前位置: 首页 > 面试题库 >

如何检测Selenium何时加载浏览器的错误页面

谢鸿羲
2023-03-14
问题内容

是否存在检测selenium浏览器何时打开错误页面的通用方法?例如,禁用您的互联网连接并执行

driver.get("http://google.com")

在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") ]

但是(1)这似乎有点计算过头(请参阅下面的要点),(2)我必须为每个浏览器创建自定义代码。

如果您禁用互联网并使用htmlunit作为浏览器,则将获得包含以下html的页面

<html>
    <head></head>
    <body>Unknown host</body>
</html>

我怎么能不做发现

if driver.find_element_by_css_selector("body").text == "Unknown host"

似乎在每个页面加载时进行检查都非常昂贵,因为正文中通常会有大量文本。

如果您还知道一种检测负载问题类型的方法(例如,没有互联网连接,主机不可达等),则可以加分。


问题答案:

WebDriver
API不公开HTTP状态代码
,因此,如果要检测/管理HTTP错误,则应使用调试代理。

请参阅Jim出色的文章《实现WebDriver
HTTP状态》,
以了解具体的操作方法。



 类似资料:
  • 问题内容: 这是我以前在这里发表的上一篇文章的扩展,我无法上班,但是更新Selenium后现在出现新错误。 我正在使用Python 3.5,Windows 8.1,Selenium 3.0.1 我知道代码可以工作,因为它可以在我的MAC上工作,但是当我将代码转移到如上所述的工作计算机上时,发生的唯一事情是浏览器将打开,但不会加载任何内容,甚至不会加载主页。 从搜索中可以找到的所有内容中,我下载了g

  • 问题内容: 我有一个页面,允许用户下载动态生成的文件。生成需要很长时间,因此我想显示一个“等待”指示器。问题是,我不知道如何检测浏览器何时收到文件,因此可以隐藏指示器。 我正在以隐藏的形式发出请求,该请求会发布到服务器,并以隐藏的iframe作为结果。这样一来,我就不会用结果替换整个浏览器窗口。我在iframe上侦听“加载”事件,希望下载完成后将触发该事件。 我随文件返回一个“ Content-D

  • 我正在使用selenium使用chrome浏览器来自动化网页,但是chrome浏览器没有启动,它在地址栏中显示“数据:;”而没有加载任何页面。 selenium: selenium-服务器-独立-3.0.0-beta2,也尝试了2.53 Chrome驱动程序:2.23(http://chromedriver.storage.googleapis.com/index.html?path=2.23/)

  • 问题内容: 我一直在寻找可以让我检测访问该网站的用户是否使用Firefox3或4的代码。我发现的所有代码都是用于检测浏览器类型而不是版本的代码。 如何检测这样的浏览器版本? 问题答案: 您可以看到浏览器说的内容,并将该信息用于记录或测试多个浏览器。

  • 我尝试使用request.meta['http_user_agent']来检测浏览器。但这将返回我测试时的浏览器类型列表 **我无法得到它返回值的模式。谁能告诉我如何得到浏览器名称

  • 问题内容: 如何在页面加载时提高浏览器缩放级别? ,最近我得到了增加宽度的任务,就像我们按Firefox一样并且浏览器缩放级别增加时,是否有任何方法可以在所有加载页面的浏览器中自动执行此操作。 问题答案: 我个人认为这是个坏主意。您可以设计您的网站,使其轻松地进行扩展(使用适当的CSS / HTML技术并不难),或者仅允许用户执行他们想要的操作(也许他们已经缩放了浏览器或使用了低分辨率)。通常,您