目录
2.5 partial link text(用部分链接的内容去定位元素)
1.写一个简单脚本
# coding = utf-8
from selenium import webdriver
import time
browser = webdriver.Firefox()
time.sleep(3)
browser.get("http://www.baidu.com")
time.sleep(3)
browser.find_element_by_id("kw").send_keys("selenium")
time.sleep(3)
browser.find_element_by_id("su").click()
browser.quit()
2.Webdriver api
对象的定位应该是自动化测试的核心,要想操作一个对象,首先应该识别这个对象。一个对象就是一个人一样,他 会有各种的特征(属性),如比我们可以通过一个人的身份证号,姓名,或者他住在哪个街道、楼层、门牌找到这 个人。 那么一个对象也有类似的属性,我们可以通过这个属性找到这对象。
2.1 id定位元素
当我们打开百度搜索框,我们可以看见是这么定位的
from selenium import webdriver
import time
# 获得浏览器的驱动
driver = webdriver.Firefox()
# 打开需要访问的web页面
driver.get("https://www.baidu.com/")
#通过kw捕获到百度搜索框,然后传送六一儿童节
driver.find_element_by_id("kw").sendkeys("六一儿童节")
#通过su捕获到点击搜索框,用click()进行点击
driver.find_element_by_id('su').click()
time.sleep(8)
driver.quit()
2.2name定位
from selenium import webdriver
import time
# 获得浏览器的驱动
driver = webdriver.Firefox()
# 打开需要访问的web页面
driver.get("https://www.baidu.com/")
#通过kw捕获到百度搜索框,然后传送六一儿童节
driver.find_element_by_name("wd").sendkeys("六一儿童节")
#通过su捕获到点击搜索框,用click()进行点击
driver.find_element_by_name('su').click()
time.sleep(8)
driver.quit()
2.3 classname定位
from selenium import webdriver
import time
# 获得浏览器的驱动
driver = webdriver.Firefox()
# 打开需要访问的web页面
driver.get("https://www.baidu.com/")
#通过classname来定位,但是不成功,因为class太多了,定位不到具体元素
driver.find_element_by_class_name("s_ipt nobg_s_fm_hover").send_keys("张天爱")
driver.find_element_by_class_name("btn self-btn bg s_btn btn_h btnhover").click()
time.sleep(8)
driver.quit()
2.4 link text(常用于点击链接)
from selenium import webdriver
import time
# 获得浏览器的驱动
driver = webdriver.Firefox()
# 打开需要访问的web页面
driver.get("https://www.baidu.com/")
#常用于点击链接
driver.find_element_by_link_text("新闻").click()
time.sleep(8)
driver.quit()
2.5 partial link text(用部分链接的内容去定位元素)
from selenium import webdriver
import time
# 获得浏览器的驱动
driver = webdriver.Firefox()
# 打开需要访问的web页面
driver.get("https://www.baidu.com/")
#常用于点击链接,但是只用输入部分就行
#driver.find_element_by_partial_link_text("新").click()
time.sleep(8)
driver.quit()
2.6 tag name(表示标签)
#这里用input标签定位,但是input不是只有一个,因此定位不到
driver.find_element_by_tag_name("input").send_keys("雅安")
driver.find_element_by_tag_name("input").click()
2.7 xpath一定可以定位到该元素,因为这个是唯一的
driver.find_element_by_xpath("//*[@id='kw'"]).send_keys("雪中")
driver.find_element_by_xpath("//*[@id='su']").click()
上面的xpath路径来源于复制:
2.8 css selector 一定可以定位到元素
#利用#加id来定位
driver.find_elements_by_css_selector("#kw").send_keys("蒲公英的约定")
driver.find_elements_by_css_selector("#su").click()
3.操作测试对象
click 点击对象
send_keys 在对象上模拟按键输入
clear 清除对象的内容,比如输入框的内容。如果可以的话
driver.find_element_by_xpath("//*[@id='kw'"]).send_keys("雪中")
driver.find_element_by_xpath
文章评论