web测试时,对网页上各种输入框和按钮进行点击输入等操作,如何自动定位到输入框或者按钮?
以chrome为例,打开百度时,F12进入开发者模式
在开发者模式中最左上角的位置,有一个箭头,点击箭头,进入选择元素模式,切换到百度页面
选中输入框,这时,自动切换至开发这模式,并定位到输入框的元素位置
这时只需鼠标右键-copy-copy xpath
就能将该元素的路径信息以xpath的格式复制下来
这个可以不用下载xpathhelper插件,能够直接转化成xpath路径
至于这个xpath格式的路径有啥用,请接着往下看
driver = webdriver.Chrome()
driver.maximize_window()
driver.implicitly_wait(8)
driver.get('https://www.baidu.com')
driver.find_element_by_xpath("//*[@id='kw']").send_keys('selenium')
driver.find_element_by_xpath("//*[@id='su']").click()
time.sleep(2)
ele_string = driver.find_element_by_xpath("//*[@id='1']/h3/a").text
# if ele_string == u"Selenium - Web Browser Automation":
# print('测试成功,结果和预期匹配')
driver.find_element_by_xpath("//*[@id='1']/h3/a").is_displayed()
driver.quit()
这是一段自动化测试脚本,做的工作就是打开浏览器,访问百度,输入‘selenium’关键字后,点击百度一下,然后在结果中判定是否有selenium官网。
其中有一个函数:find_element_by_xpath()
这个函数就是通过xpath路径来查找浏览器元素的,把元素的xpath路径传入函数中,可以定位到该元素对应的位置,并进行操作
上述代码中一共用了4次,分别对应如下操作:
1.找到输入框,并输入关键字‘selenium’
2.找到搜索按钮,并点击
3.查找selenium官网关标题的元素,并将标题内容存为text,进行判定
4.查找selenium官网标题的元素,进行断言是否展示出来。
当然,查找元素的方法还有很多,这个就要你们自己去查阅selenium官方文档了,但是对于一般的测试,xpath就够用了。