元素的特征:根据页面设计规则,有些特征是唯一 ==开发遵循了这个规则
id :类比身份证号―==仅限于当前页面 username username
注意:如果id 不是固定的话,就不能使用来定位!
xpath:
1、绝对路径:/html/body/div/div/div[1]/a/b --根节点,顺序性,继承关系 --失效
== 面试不说,工作不用
2、相对路径:只靠自己的特征定位 // 开头 – 加上我关心节点的标签名
==标签名+属性 =//标签名[@属性名=属性值]
//input[@id=“username”] --xpath表达方式
3、获取页面文本:text
2、层级定位:
//标签名[@属性值]//标签名[@属性名=届性值]
-//div[@class=“login-logo”]//b
3、文本属性定位://b[text()=“柠檬ERP"]
4、包含属性值://标签名[contains(@属性名/text(),属性值]
—//input[contains(@class,“username”)]
找到了有username这个id的元素–点,输入内容
driver.find_element_by_xpath("//input[@id=‘username’] ").send_keys(“test123”)
#1、找到这个元素的位置之后获取文本,赋值给变量
page_text = driver.find_element_by_xpath (‘//div[@class=“login-logo”]//b’).text
page_tile = driver.title #2、获收页面的标题
print(“这个页面的标题是:{}”.format(page_tile))
if page_text==“柠檬ERP”:
print(“这个页面的标题是:{}”.format(page_text))
else:
print(“这个条件测试用例不通过!”)
#第五条用例
#获取到登录的用户名
但凡是切换了页面,页面没有加载定,元素不显示==最好加个等待:
三种等待方式:
1、强制等待: time.sleep() ==没有完成等待时间 不往下执行:
2、智能等待:
隐式等待:可以设置等待时间,再这个等待时间还没有结束之前元素找到了,不继续等待,继续执行下面的代码:–灵话
注意:一个session里只执行一次。
显示等待:expected_condition ==Python班级
八大元素定位方式
三大等待
四大操作
time.sleep(5) #强制等待5秒
login_user=driver.find_element_by_xpath(“//P[text()=‘测试用户’]”).text
if login_user==“测试用户”:
print(“这个登录的用户是:{}”.format(login_user))
else:
print(“这个条件测试用例不通过!”)
#点击零售出库
driver.find_element_by_xpath(“//span[text()=‘零售出库’]”).click()
‘’’
1、识别是否有子页面的方式:页面层级路径里出现iframe:就需要去切换iframe才可以进行元素的定位。
2、怎么去切换:
1)找到这个iframe元素,切换
‘’’
#id = driver.find_element_by_xpath(“//iframe[eid=‘tabpanel-bafba10ab5-frame’]”)
driver.switch_to.frame (‘tabpanel-bafba10ab5-frame’)