python + selenium自动化测试--元素基本操作

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方法
单选框点击:以百度新闻页为例
python + selenium自动化测试--元素基本操作_第1张图片

利用for语句遍历这两个单选按钮,依次点击他们

# 寻找一组元素 find_elements_by_xpath()
for i in driver.find_elements_by_xpath("//*/input[@type='radio']"):
    i.click()

复选框一样,如百度登录弹窗上“下次自动登录按钮”:
python + selenium自动化测试--元素基本操作_第2张图片

# 两种定位方法
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)

运行结果:
python + selenium自动化测试--元素基本操作_第3张图片

你可能感兴趣的:(自动化测试)