首页 > 解决方案 > 尝试检测网站 selenium 上是否显示错误时出错

问题描述

我正在测试一个网站是否引发了错误,我自己得到一个错误以查看是否发生这种情况。到目前为止,我只是查看按钮是否可点击,因此如果按钮不可点击/未显示,则程序可以继续。但是如果出现错误,我需要返回一个值。

try:
    dismissBtn = WebDriverWait(driver, 2).until(EC.element_to_be_clickable((By.XPATH, "//input[@value='Dismiss this error']")))
    print("Reg Error Button is clickable")
finally:
    print("No error") 

错误如下

dismissBtn = WebDriverWait(driver, 2).until(EC.element_to_be_clickable((By.XPATH, "//input[@value='Dismiss this error']")))
  File "C:\Users\User\AppData\Local\Programs\Python\Python39\lib\site-packages\selenium\webdriver\support\wait.py", line 80, in until
    raise TimeoutException(message, screen, stacktrace)
selenium.common.exceptions.TimeoutException: Message:

HTML代码如下

<div id="6823e3dd-d694-4a3e-99ae-6c074e3af73d" class="unite-error-panel errorPanel unite-component">
    <span class="unite-h1-no-image">An error occurred.</span>
      <ul>
      
        <li>We are unable to connect to our servers right now. Please try again later.</li>
      
      </ul>
    <div id="8977e4fa-bb61-4a51-8b56-5e051b7f95d1" class="unite-error-code" style="display: none;"> {"code":"GENERIC","httpStatus":0}</div>
    <div id="0b57d2f0-a8c4-4b7e-8095-ae09054cb053" class="unite-error-close">
      <input type="button" value="Dismiss this error">
    </div>
</div>

还有另一种方法可以解决这个问题吗?

标签: pythonseleniumselenium-webdriverautomationwebdriverwait

解决方案


元素的基于相关文本的 HTML 将帮助我们分析您正在使用的定位器策略是否唯一地标识了所需的元素。假设元素是唯一标识的,因为它是一条错误消息:

也许将等待时间从2秒增加到5秒可以解决问题。


推荐阅读