1、元素定位方式
1.1 By.ID
driver = webdriver.Chrome()
driver.get("https://www.baidu.com/")
driver.find_element(By.ID, "kw").send_keys("自动化")
1.2 By.NAME
driver.find_element(By.NAME, "wd").send_keys("自动化")
1.3 By.LINK_TEXT,链接文本
driver.find_element(By.LINK_TEXT, "新闻").click()
1.4 By.PARTIAL_LINK_TEXT,部分文本链接
driver.find_element(By.PARTIAL_LINK_TEXT, "新").click()
1.5 By.XPATH定位,分为五种
1.5.1 相对路径+索引定位
# 定位form模块第一个span标签下的input
driver.find_element(By.XPATH, "//form/span[1]/input")
1.5.2 相对路径+属性定位
driver.find_element(By.XPATH, "//[@autocomplete = 'off']")
1.5.3 相对路径+通配符定位,*是通配符,匹配所有属性值为off的属性
driver.find_element(By.XPATH, "//*[@* = 'off']")
driver.find_element(By.XPATH, "//*[@autocomplete = 'off']")
1.5.4 相对路径+部分属性值定位,属性要唯一
driver.find_element(By.XPATH, "//*[starts-with(@autocomplete.'ff')]")
driver.find_element(By.XPATH, "//*[substring(@autocomplete,2) = 'ff']")
driver.find_element(By.XPATH, "//*[contains(@autocomplete ,'ff')]")
1.5.5 相对路径+文本标签值定位
driver.find_element(By.XPATH, "//span[text() = '按图片搜索']")
2、定位框架
2.1 定位菜单栏时,如果有框架,则需要切换框架切换框架(frame:框架,iframe:子框架)
driver.switch_to.frame("框架名”)
出框架:
driver.switch_to.default_content()
2.2 下拉框处理,select 定位
2.2.1 通过value定位
sel = Select ( driver.find_element(By.NAME,"cat_id")
sel.select_by_value("4")
2.2.2 通过文本定位
2.3 增加元素
2.4 删除元素
判断:获取数据列表
if len(del_button_list)> 0:
del_button_list[0].click()
else:
print("没有可以删除的数据“)
3、处理弹窗
3.1 处理alert
3.2 处理prompt()
3.3 处理confirm
ale = driver.switch_to.alert
time.sleep(3)
#取消
ale .dismiss()
#确定
ale.accept()
5、上传图片(附件 处理)
driver.find_element(By.NAME,"图片名“).send_keys(r"图片路径”)
6、断言
self.assertEqual()
self.assrtTrue()
self.assertIn()