gpt4 book ai didi

python - selenium python 检查隐藏错误

转载 作者:行者123 更新时间:2023-11-28 20:54:48 25 4
gpt4 key购买 nike

因此,我需要创建一些测试来检查登录/注册。当用户输入的电子邮件不正确时,我试图捕获隐藏错误。脚步:1. 输入无效的电子邮件。2. 按下“登录”按钮。3.应该显示“密码或电子邮件不正确”的错误。

下面我写了 2 个函数。我如何结合这两个功能?第二个功能总是显示“OK”状态。

  def test_login_user(self):
driver = self.driver
driver.get("https://courses.edx.org/login")
driver.find_element_by_name('email').send_keys("email24")
driver.find_element_by_name('password').send_keys('12345678')
driver.find_element_by_name('signin').click()

def test_error(self):
driver = self.driver
driver.get('https://courses.edx.org/login')
error = driver.find_element_by_css_selector('div.status.submission-error')
if error.is_displayed():
return True
else:
return False

最佳答案

首先,不是通过 name 定位元素 - 切换到 idclass 属性 - 有多个元素具有相同的名称.

此外,您需要使用 Explicit Waits 来等待元素变为可见。

工作示例:

from selenium import webdriver
from selenium.common.exceptions import TimeoutException
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

driver = webdriver.Firefox()

driver.get("https://courses.edx.org/login")
email = WebDriverWait(driver, 10).until(EC.visibility_of_element_located((By.ID, "login-email")))
email.send_keys("illegal")
driver.find_element_by_name('password').send_keys('12345678')
driver.find_element_by_css_selector('button.login-button').click()

try:
WebDriverWait(driver, 10).until(EC.visibility_of_element_located((By.CSS_SELECTOR, "div.status.submission-error")))
print True # in your case inside a function it would be "return True"
except TimeoutException:
print False # in your case inside a function it would be "return False"

关于python - selenium python 检查隐藏错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28766049/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com