python - selenium python 检查隐藏错误

标签 python testing selenium selenium-webdriver automated-tests

因此,我需要创建一些测试来检查登录/注册。 当用户输入的电子邮件不正确时,我试图捕获隐藏错误。 脚步: 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/

相关文章:

ruby-on-rails - 如何设置 Rails Angular 项目来测试 JS?

Selenium-Webdriver (Java) 未能始终如一地执行 'hoverover and click' 函数

python - 将从 selenium 获得的页面源传递给 scrapy

python - 使用python更新elasticsearch记录

regex - 响应变量 JMETER

python - 默认为并选择 Tkinter 列表框中的第一项

java - 测试与外部服务的交互

python - 如何并行运行多个 Selenium 驱动程序?

python - Django :哪几天有对象?

Python 负索引差异