WebDriverWait类的介绍

1、element_to_be_clickable(locator)是等待页面元素可见的时候操作,会设置一定范围的时间,如果在时间范围内,元素可见,就执行操作,元素不可见,就会引发TimeoutException的异常。如下是element_to_be_clickable

#coding:utf-8
from selenium import  webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import  WebDriverWait
from selenium.webdriver.support import expected_conditions
driver=webdriver.Firefox()
driver.implicitly_wait(30)
driver.get('http://www.baidu.com')
so=WebDriverWait(driver,10).until(expected_conditions.element_to_be_clickable((By.ID,'kwkw')))
so.send_keys('appium')
driver.quit()

2.、text_to_be_present_in_element(locator,text)是指定页面元素的文本位置,一般用于验证一个文本信息或者错误的信息,我们任然以百度登录为案例,用户名和密码为空,点击登录按钮,验证在指定的时间范围内会不会出现"请您填写手机/邮箱/用户名"的错误信息,见实现的代码:

from selenium import  webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import  WebDriverWait
from selenium.webdriver.support import expected_conditions
import  time as t
driver=webdriver.Firefox()
driver.maximize_window()
driver.implicitly_wait(30)
driver.get('http://www.baidu.com')
t.sleep(3)
driver.find_element_by_id('u1').find_element_by_class_name('lb').click()
driver.find_element_by_id('TANGRAM__PSP_8__submit').click()
WebDriverWait(driver,10).until(expected_conditions.text_to_be_present_in_element((By.CSS_SELECTOR,"#TANGRAM__PSP_8__error"),u'请您填写手机/邮箱/用户名'))


3.visibility_of_element_located(locator)是元素可见后再执行其他的操作,如百度首页的“关于百度”,我们想点击它,先验证是否可见,如果可见,再点击,见实现的代码:

element=WebDriverWait(driver,10).until(expected_conditions.visibility_of_element_located((By.XPATH,".//*[@id='lh']/a[3]")))


4.implicitly_wait()方法是隐式等待,用来设置超时,一般把implicitly_wait()方法调用在加载测试地址后,等待所测试的  应用程序加载,这样就会有一个缓充的过程,


5.WebDriverWait()是显式等待,也就是说会明确等待的时间。我们还是已百度搜索为实例,来演示显式等待在自动化中的实际应用

locator=WebDriverWait(driver,10).until(expected_conditions.visibility_of_element_located((By.ID,'kw')))


  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Page Object 是一种设计模式,用于将页面对象与测试代码分离,从而提高代码的可重用性、可维护性和可读性。下面是使用 Python 实现 Page Object 的示例代码: 1. 首先,我们需要创建一个 BasePage ,它包含一些公共的方法,例如 find_element 和 click 等。 ```python from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC from selenium.webdriver.common.by import By from selenium.webdriver.remote.webdriver import WebDriver class BasePage: def __init__(self, driver: WebDriver): self.driver = driver def find_element(self, locator, timeout=10): element = WebDriverWait(self.driver, timeout).until(EC.presence_of_element_located(locator)) return element def click(self, locator, timeout=10): element = self.find_element(locator, timeout) element.click() ``` 2. 接下来,我们创建一个 Page ,用于表示一个页面。该继承自 BasePage ,并包含该页面的所有元素和方法。在这个示例中,我们以 Google 首页为例。 ```python from selenium.webdriver.common.by import By class GooglePage(BasePage): URL = "https://www.google.com/" SEARCH_INPUT = (By.NAME, "q") SEARCH_BUTTON = (By.CSS_SELECTOR, "input[type='submit']") def __init__(self, driver: WebDriver): super().__init__(driver) self.driver.get(self.URL) def search(self, keyword): search_input = self.find_element(self.SEARCH_INPUT) search_input.send_keys(keyword) self.click(self.SEARCH_BUTTON) ``` 3. 最后,我们可以在测试代码中实例化该页面,并调用其中的方法。 ```python from selenium import webdriver driver = webdriver.Chrome() google_page = GooglePage(driver) google_page.search("Page Object Pattern") ``` 以上就是使用 Python 实现 Page Object 的示例代码。在实际使用中,可以根据具体的项目需求,进一步完善和优化代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值