1、webdriver元素定位方式
  id、name、class_name—>元素属性定位
  tag_name—>元素标签名称
  link_text、partial_link_text—>超链接定位(a标签)
  xpath—>元素路径定位
  css—>css选择器定位

2、元素定位
  1、id定位—->id属性是唯一的。
    find_element_by_id()
  2、name定位
    find_element_by_name()
  3、class_name定位
    find_element_by_class_name()
  4、tag_name定位—>通过元素的标签名称来定位,如:<input>
    find_element_by_tag_name()
  5、link_text定位—>只定位超链接<a>标签
    find_element_by_link_text()
  6、partial_link_text定位
    find_element_by_partial_link_text()
  7、Xpath定位
    绝对路径:/开头,中间不能跳跃 如:/html/body/div[1]/div[1]/div[3]/div/div/form/span[1]/input
    相对路径://开头,后边跟标签名称或* ,所有属性必须以@修饰,如:”//*[@id=\’kw\’]”
    层级与属性:父子标签 如://span[@class=\’bg s_ipt_wr\’]/input
    属性与逻辑:两个属性以上时使用,使用逻辑符号and连接 如://input[@id=\’kw\’ and @class=\’su\’]/span/input
    属性
      //*[text()=”xxx”]
      //*[starts_with(@id,”xxx”)] 开头
      //*[contains(@classname,”xxx”)] 包含
    find_element_by_xpath()
  8、CSS定位
    css定位常用策略
    id选择器 #id
    class选择器 .classname
    元素选择器 input
    属性选择器 (input)[id=\’kw\’]
    层级选择器 p>input或p input
    css延申
      input[type^=\’p\’] type属性以p字母开头的元素
      input[type$=\’p\’] type属性以p字母结尾的元素
      input[type*=\’p\’] type属性包含p字母开头的元素
    find_element_by_css_selector()
  9、By类的方法
    from selenium.webdriver.common.by import By
    find_element(By.ID,”kw”)
  10、elements—>返回符合条件的所有标签,列表格式,指明下标
    find_elements_by_tag_name()

 

3、自动化实现步骤
  1、导包:from selenium import webdriver import time
  2、实例化浏览器:driver=webdriver.Chrome()
  3、打开网页:driver.get(url)
  4、调用元素定位方法: driver.find_element_by_id(“”)
  5、使用send_keys()方法发送数据:.send_keys(“”)
  6、暂停3秒:time.sleep(3)
  7、关闭浏览器:quit()

# 1、导包
# from selenium import webdriver
# import time

# 2、实例化浏览器
# driver = webdriver.Chrome()

# 3、打开项目-url
# driver.get("http://www.baidu.com")
# driver.get("http://www.youdao.com/")
# driver.get("https://email.163.com/")

# 隐式等待10秒
# driver.implicitly_wait(10)

# 4、id定位元素-给文本框传值
# driver.find_element_by_id("kw").send_keys("selenium")

# name定位
# driver.find_element_by_name("wd").send_keys("webdriver")

# class_name定位
# driver.find_element_by_class_name("s_ipt").send_keys("webdriver")

# tag_name定位
# driver.find_element_by_tag_name("a").click()

# link_text定位
# driver.find_element_by_link_text("登录").click()

# partial_link_text定位
# driver.find_element_by_partial_link_text("登").click()

# Xpath定位
# 绝对路径
# driver.find_element_by_xpath(\'/html/body/div[1]/div[1]/div[3]/div/div/form/span[1]/input\').send_keys("自动化")
# 相对路径
# driver.find_element_by_xpath(\'//input[@id="kw"]\').send_keys("web自动化")

# css定位
# id选择器 #id
# driver.find_element_by_css_selector("#kw").send_keys("接口自动化")
# class选择器 .classname
# driver.find_element_by_css_selector(".s_ipt").send_keys("自动化")
# 元素选择器
# driver.find_element_by_css_selector("")
# 属性选择器
# driver.find_element_by_css_selector("[id=\'kw\']").send_keys("测试工程师")
# 层级选择器
# driver.find_element_by_css_selector("span>input[id=\'kw\']").send_keys("工程师")

# elements--->返回符合条件的所有标签,列表格式,指明下标
# driver.find_elements_by_tag_name("input")[7].send_keys("webdriver")

# By类的方法
# from selenium.webdriver.common.by import By
# driver.find_element(By.ID,"kw").send_keys("新型定位")

# 5、暂停3秒
# time.sleep(3)
# 6、关闭浏览器
# driver.quit()

版权声明:本文为siyu0123原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/siyu0123/p/12756131.html