1、识别是否有子页面的方式:页面层级路径里出现iframe:就需要去切换iframe才可以进行元素的定位。
2、怎么去切换:
1)找到这个iframe元素,切换
切换三种方式:
1、通过id来切换
2、通过元素定位(xpath)来切换iframe
3、iframe下标: 从0开始 html-页面=0,第一个宝宝-1,第二个宝宝-2
‘’’
#id = driver.find_element_by_xpath(“//iframe[eid=‘tabpanel-bafba10ab5-frame’]”)
driver.switch_to.frame (‘tabpanel-bafba10ab5-frame’)
#通过找到这个元素–获取id属性
P_id = driver.find_element_by_xpath(“//div[text()=‘零售出库’]/…”).get_attribute(“id”)
F_id = P_id+“-frame”
print(F_id)
方法一:1、通id进行的iframe切换
driver.switch_to.frame(F_id)
driver.find_element_by_id(“searchNumber”).send_keys(“314”)
#方法二:2、通过元素定位(xpath)来切换iframe
driver.switch_to.frame(driver.find_element_by_xpath(“//iframe[@id=‘{}’]”.format(F_id)))
#方法三:3、通过iframe的下标 来切换
driver .switch_to.frame(1)
driver.find_element_by_id (“searchNumber”).scnd_keys (“314”)
点击搜索按钮
driver.find_element_by_id (“searchBtn”).click()
#有些元素就是不能生效,所以必须加一个强制等待,如果是等待的问题,那就加一个强制等待;一般工作中,会常用隐式等待加强制等待,所有等待都是因为页面刷新速度赶不上代码运行速度
time.sleep(1)
#找到单据编号
num = driver.find_element_by_xpath (“//tr[@id=‘datagrid-row-r1-2-0’]//td[@field=‘number’]/div”).text
if “314” in num:
print(“搜索结果是正确的!”)
else:
print(“用例测试不通过!”)
‘’’
web自动化–实现正常核心功能为主==冒烟测试!
‘’’