安装Xpath:
组件中添加:
Xpath:XML path简称,XML的实现
XML:一种标记语言,配置、数据存储功能
Xpath策略:
1.路径:
相对:当前的目录、
绝对:包含跟目录
2.元素
3.层级与属性结合
4.属性与逻辑结合
.find_element_by_xpath()
路径:
绝对路径:
从最外层开始,一级一级往下
相对路径: //*[@id="kw"] 查找所有id属性,id属性为kw
Xpath:路径中属性以@修饰
1.使用xpath:find_element_by_xpath("//*[@id='input-1']")
from time import sleep
from selenium import webdriver
driver=webdriver.Firefox()
url="http://11.111.11.1:3110/login/index"
driver.get(url)
driver.find_element_by_xpath("//*[@id='input-1']").send_keys("admin")
sleep(3)
driver.quit()
运行结果:
2.层级与属性:
要找的元素没有属性,父级
延伸:
1. //*[text()="文本内容"]
# coding=gbk
from time import sleep
from selenium import webdriver
driver=webdriver.Firefox()
url="https://www.baidu.com"
driver.get(url)
driver.find_element_by_xpath("//*[text()='新闻']").click()
sleep(3)
driver.quit()
运行结果:
2.//*[starts-with(@attribute,"文本内容")] 以内容开始的元素
3.//*[contains(@attribute,"文本内容")] 包含有内容的元素
css定位:
比Xpath定位速度快
.find_elements_by_css_selector()
定位方式:
-
id选择器
-
以#开始:
-
driver.find_element_by_css_selector("#kw").send_keys("admin")
-
-
class选择器
-
以.开始:
-
driver.find_element_by_css_selector(".s_ipt").send_keys("admin")
-
-
元素选择器
-
根据标签名称选择
-
-
属性选择器
-
[属性名=属性值]
-
[type="name"]
-
-
层级选择器
-
元素父子关系选择:
-
element>element
-
p>input[class="cvalue"]
-
p[id="name"]>input
-
开头:^
id^="a" 以a开头的id
结尾:$
id$="a" 以a结尾的id
包含:*
id*="a" 包含a的id
By.CSS_SELECTOR
driver.find_element(By.CSS_SELECTOR,"#kw").send_keys("admin")
# coding=gbk
from selenium.webdriver.common import by
from time import sleep
from selenium import webdriver
from selenium.webdriver.common.by import By
driver=webdriver.Firefox()
driver.get("https://www.baidu.com")
driver.find_element(By.CSS_SELECTOR,"#kw").send_keys("admin")
sleep(3)
driver.quit()