尝试检测网站 selenium 上是否显示错误时出错

时间:2021-01-25 08:26:29

标签: python selenium selenium-webdriver automation webdriverwait

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

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>

还有其他方法可以解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

元素的基于相关文本的 HTML 将帮助我们分析您使用的 Locator Strategy 是否唯一标识所需元素。假设元素是唯一标识的,因为它是一个错误消息:

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