1、通过CSS定位
find_element_by_css_selector()
driver.find_element_by_css_selector("#kw").send_keys("胡歌") # 百度首页输入框
2、文本信息
- 元素赋值
.send_keys()
driver.find_element_by_xpath('//*[@id="kw"]').send_keys("胡歌") # 搜索框输入胡歌
- 获取文本信息
.text
driver.find_element_by_id('TANGRAM__PSP_10__error').text
- 断言文本信息
# 1)直接把字段写入XPath表达式,如果通过该XPath能定位到元素,说明这个错误字段已经在页面显示
try:
driver.find_element_by_xpath('//*[@id="TANGRAM__PSP_10__error" and text()="请您输入手机/邮箱/用户名"]').is_displayed()
print("测试成功,显示错误信息")
except Exception as e:
print("测试失败.", format(e))
# 2)建议使用此方法
# element.text得到值,在拿得到的text值取和期待的结果去字符串匹配
error_mes = driver.find_element_by_id('TANGRAM__PSP_10__error').text
try:
assert error_mes == "请您输入手机/邮箱/用户名"
print("测试通过")
except Exception as e:
print("测试失败.", format(e))
- 清除文本信息
.clear()
driver.find_element_by_id("kw").clear()
3、单选框、复选框
* 点击
.click() 勾选一个按钮就是调用元素的click方法
单选框点击:以百度新闻页为例
利用for语句遍历这两个单选按钮,依次点击他们
# 寻找一组元素 find_elements_by_xpath()
for i in driver.find_elements_by_xpath("//*/input[@type='radio']"):
i.click()
复选框一样,如百度登录弹窗上“下次自动登录按钮”:
# 两种定位方法
driver.find_element_by_xpath('//*[@id="TANGRAM__PSP_10__memberPass"]').click()
time.sleep(1)
driver.find_element_by_id("TANGRAM__PSP_10__memberPass").click()
- 判断控件是否被选中
.is_selected()
# 判断控件是否被选中
if driver.find_element_by_xpath("//*[@id='news']").is_selected():
print('被选中.')
else:
print('未被选中.')
4、获取页面源代码,得到匹配字段
获取源代码 .page_source
'''
获取简书-联系我们下所有的邮箱
'''
# 得到页面源代码
doc = driver.page_source
# findall 返回匹配子字符串的列表
# 利用正则,找到匹配邮箱的字段
emails = re.findall(r'[\w]+@[\w\.-]+',doc)
5、页面元素大小
.size
# 页面元素大小
search_btn = driver.find_element_by_id('su') # 搜索按钮
print(search_btn.size)
运行结果: