一、class定位
class属性有空格是多重属性,取其中一个就行
#通过class定位,对应于class的值
# driver.find_element_by_class_name("s_ipt").send_keys("123")
driver.find_element_by_class_name("quickdelete-wrap")取class其中一个值就好
二、By元素定位
find_element()方法只用于定位元素。
它需要两个参数,第一个参数是定位方式,这个由By 提供;
第二个参数是定位的值。
在使用By 时需要将By 类导入。
from selenium.webdriver.common.by import By
find_element(By.ID,"kw")
find_element(By.NAME,"wd")
find_element(By.CLASS_NAME,"s_ipt")
三、鼠标事件:
from selenium.webdriver.common.action_chains import ActionChains
context_click() 右击
double_click() 双击
drag_and_drop(source, target)拖动
move_to_element() 鼠标悬停
四、xpath定位:
# driver.find_element_by_xpath("//*[@id='kw']").send_keys("hao")
#driver.find_element_by_xpath('/html/body/div#app/div/div/div/div/div/form/div/div/div/input.ivu-input.ivu-input.default/')
driver.find_element_by_xpath("//input[@type='text']").send_keys("lipanpan")
driver.find_element_by_xpath("//input[@type='password']").send_keys("15101019561")
# driver.find_element_by_xpath("//input[@type='button']").click()
五、通过id定位
find_element_by_id("kw").send_keys("悠悠")#输入框输入字符串
六、通过tag(标签)定位,*号匹配任何标签;也可以指定标签名称
find_element_by_tag_name("button").click()
七、通过class_name定位
driver.find_element_by_class_name("email").clear()
八、多个属性组合(逻辑运算)
# driver.find_elements_by_xpath("//input[@type='text' and @name='wd']")
九、相对路径:层级关系
# driver.find_element_by_xpath("//form[@id='form']/span/input")
十、索引:如定位搜索选项框
# driver.find_element_by_xpath("//*[@id='nr']/option[3]")
#同一父级多个子元素
# driver.find_element_by_xpath(".//*[@id='u1']/a[@class='mnav'][1]").click()
#多个相同元素不是一个父级
#driver.find_element_by_xpath(".//*[@id='sidebar_toptags']/div/ul/li/a")[0]
#contains模糊匹配text