创建一个网站流程图,和一个网站做接口,扁平化 网站,如何写一个可以做报价计算的网站1.关联型xpath的用法
driver.find_element(By.XPATH,//a[text()xxx]/ancestor::祖先元素的标签名//……)
2.selenium等待
等待的作用 #xff1a;在系统运行的过程中#xff0c;等待网页内容的加载显示。需要耗费的时间#xff0c;与网络速度、接口的复杂程度…1.关联型xpath的用法
driver.find_element(By.XPATH,//a[text()xxx]/ancestor::祖先元素的标签名//……)
2.selenium等待
等待的作用 在系统运行的过程中等待网页内容的加载显示。需要耗费的时间与网络速度、接口的复杂程度、框架设定等因素有关。在做UI自动化的时候主要是基于系统的流程来实现的自动化往往是下一步需要依赖上一步的特定条件才能继续执行。在下一步准备执行时上一步必须已经完成执行并生成实际结果。考虑到运行的时间问题和执行的步骤问题在执行自动化测试的时候是需要设置缓冲时间的。
2.1三大等待
1.强制等待——通过导入time类中的sleep等待X秒之后再继续执行后项代码。无所谓当前处于什么阶段执行了什么操作后续是否准备就绪。因为无法精准把握等待的时间无法判定是否达到下一步进行的操作/无法判断页面是否加载基本不在实际工作中使用。
2.显式等待——专门用于对指定的条件进行等待。在最大的等待时长内依照查找的时间频率来进行搜索查找指定的对象。until表示如果找到则继续下一步否则报出异常NoSuchElementException。显式等待的优点是精确对某个特定条件进行等待不会浪费多余任何时间在等待上。如果条件成立则立即进行下一步如果不成立则抛出异常。
WebDriverWait(driver,20,0.5).until(ec.presence_of_element_located(locator))
3.隐式等待——设置一个隐形的等待和一个最长等待时间在这个时间内如果完成了页面的加载就进行下一步否则一直等到该时间结束再进行下一步。优点是WebDriver整个周期都能起到作用所以只需设置一次。缺点是必须要等待页面全部加载完成才可以进行下一步但有时候特定元素早已加载完成因此在应用度上不是很灵活。
//设置隐式等待
driver.implicitly_wait(10) 3.自动化关键字驱动与关联
3.1关键字驱动
作用把一些常用的功能进行简化。把自动化需要用到的功能按实际业务和技术需要封装为函数。这些功能函数我们就称为关键字。通过关键字做对应的功能动作从而实现自动化称之为关键字驱动的自动化。关键字驱动可以简化操作代码方便自动化维护。
一个百度搜索的关键字调用简单案例
from selenium import webdriver
from selenium.webdriver.common.by import By
import time
def get_url():driver.get(https://www.baidu.com)
def input_usrname():driver.find_element(By.ID,kw).send_keys(腾讯课堂)
def click_btrn():driver.find_element(By.ID,su).ckick()
driver webdriver.Chrome()
get_url()
input_usrname()
click_btrn()
time.sleep(2)
driver.quit()
# 自动化框架数据驱动关键字驱动
# 数据驱动——操作和数据分开是自动化测试的一种思想或理论
# 关键字是实现方式讲一些重复率高的操作封装为关键字
3.2关联
关联是指上下文衔接调用的需求情况。关联一般分为两步保存数据、使用数据。
4.断言
判断代码的执行是否符合预期。断言不能解决任何自动化问题只是为了在某个节点给出明确结果。UI类自动化如果不需要校验数据正确性就可以用报错作为断言。