页面元素的定位与操作,是自动化测试的核心内容
(1)打开浏览器
from selenium import webdriver
b = webdriver.Chrome()
(2)打开网页
b.get('https://www.baidu.com/') #打开一个网页,比如百度
判断打开的网页是否正确:查看title,URL,元素等。
>>> from selenium import webdriver >>> b = webdriver.Chrome() >>> b.get('https://www.baidu.com/') >>> b.title '百度一下,你就知道' >>> b.current_url 'https://www.baidu.com/' >>> '百度'in b.title True(3)定位元素与操作
Selenium提供了8种定位方式:
元素名称
webdriver API
id
find_element_by_id()
name
find_element_by_name()
class name
find_element_by_class_name()
tag name
find_element_by_tag_name()
link text
find_element_by_link_text()
partial link text
find_element_by_partial_link_text()
xpath
find_element_by_xpath()
css selector
find_element_by_css_selector()
定位元素后,元素操作方式:
方法说明clear清除元素内容send_keys模拟按键输入click点击submit提交表单可以看到<input type="text" class="s_ipt" name="wd" id="kw" maxlength="100" autocomplete="off">
①find_element_by_id()
id 和 name 是我们最最常用的定位方式,因为大多数控件都有这两个属性,而且在对控件的id 和name命名时一般使其有意义也会取不同的名字。通过这两个属性使我们找一个页面上的属性变得相当容易。
定位到输入框,id='kw'
ele = b.find_element_by_id('kw')
在输入框输入“麦子学院”
ele.send_keys('麦子学院')
提交表单:submit(),有些搜索框不提供搜索按钮,而是通过按回车键搜索,可以通过submit()模拟:
ele.submit()
清空输入框: ele.clear()
回到上一页: b.back()
②find_element_by_name()
ele1 = b.find_element_by_name('wd')
ele1.send_keys('麦子学院')
③find_element_by_class_name()
ele2 = b.find_element_by_class_name('s_ipt') ele2.send_keys('麦子学院')
④find_element_by_tag_name()
标签就是input,但是页面中有很多input,用input定位默认会返回第一个input,容易报错
ele3 = find_element_by_tag_name('input')
由id可知定位的元素和前面的不一样