目录
find_element 和 find_elements 的区别
选择元素:
根据 id属性 选择元素
from selenium import webdriver
from selenium.webdriver.common.by import By
# 创建 WebDriver 实例对象,指明使用chrome浏览器驱动
wd = webdriver.Chrome(r'D:/chromedriver.exe')
# chromedriver.exe官方版是Chromium team开发维护的,它是实现WebDriver有线协议的一个单独的服务。 ChromeDriver通过chrome的自动代理框架控制浏览器,ChromeDriver只与12.0.712.0以上版本的chrome浏览器兼容。
# WebDriver 实例对象的get方法 可以让浏览器打开指定网址
wd.get('https://www.baidu.com')
# 根据 class name 选择元素,返回的是 一个列表
# 里面 都是class 属性值为 animal的元素对应的 WebElement对象
element=wd.find_element(By.ID,'kw').send_keys("菜鸟教程")
#kw是检查html编码,send_keys(“”)是输入框中输入的内容
element=wd.find_element(By.ID,'su').click()
#clike是点击按钮
根据 class属性 选择元素
from selenium import webdriver
from selenium.webdriver.common.by import By
# 创建 WebDriver 实例对象,指明使用chrome浏览器驱动
wd = webdriver.Chrome(r'D:/chromedriver.exe')
# WebDriver 实例对象的get方法 可以让浏览器打开指定网址
wd.get('https://www.baidu.com')
# 根据 class name 选择元素,返回的是 一个列表
# 里面 都是class 属性值为 animal的元素对应的 WebElement对象
element=wd.find_element(By.CLASS_NAME,'mnav.c-font-normal.c-color-t').click()
根据 tag 名 选择元素
from selenium import webdriver
from selenium.webdriver.common.by import By
# 创建 WebDriver 实例对象,指明使用chrome浏览器驱动
wd = webdriver.Chrome(r'D:/chromedriver.exe')
# WebDriver 实例对象的get方法 可以让浏览器打开指定网址
wd.get('https://www.baidu.com')
# 根据 class name 选择元素,返回的是 一个列表
# 里面 都是class 属性值为 animal的元素对应的 WebElement对象
element=wd.find_element(By.TAG_NAME,'area').click()
#定位百度图案,click()是点击打开
find_element 和 find_elements 的区别
使用 find_elements
选择的是符合条件的 所有
元素, 如果没有符合条件的元素, 返回空列表
使用 find_element
选择的是符合条件的 第一个
元素, 如果没有符合条件的元素, 抛出 NoSuchElementException 异常
css表达式
根据 tag名
element= wd.find_element(By.CSS_SELECTOR, 'area')
等于
element=wd.find_element(By.TAG_NAME, 'area')
根据id属性
element=wd.find_element(By.CSS_SELECTOR,'#kw').send_keys("菜鸟教程")
#kw是检查html编码,send_keys(“”)是输入框中输入的内容
element=wd.find_element(By.CSS_SELECTOR,'#su').click()
根据class属性
element=wd.find_element(By.CSS_SELECTOR,'.mnav.c-font-normal.c-color-t').click()
根据属性选择
HTML代码
〈a href= "http://news.baidu.com" target=" blank" class="mnav c-font-nonrmal c-color-t">新闻</a〉=- $0
element = wd.find_element(By.CSS_SELECTOR, '[href="http://news.baidu.com"]').click()
# 打印出元素对应的html
print(element.get_attribute('outerHTML'))
2.比如
要选择a节点,里面的href属性包含了news字符串,就可以这样写
element = wd.find_element(By.CSS_SELECTOR, 'a[href*="news"]').click()
3.比如
要选择a节点,里面的href属性以.com结尾 ,就可以这样写
element = wd.find_element(By.CSS_SELECTOR, 'a[href$="baidu.com"]').click()
如果一个元素具有多个属性
<div class="misc" ctype="gun"> </div>
CSS选择器可以指定选择的元素要同时具有多个属性的限制,像这样
div[class=misc][ctype=gun]
Xpath语法简介
绝对路径选择
elements = driver.find_elements(By.XPATH, "/html/body/div")
这个表达式表示选择html下面的body下面的div元素。
根据id属性选择
element=wd.find_element(By.XPATH,'//input[@id="kw"]').send_keys("菜鸟教程")
#kw是检查html编码,send_keys(“”)是输入框中输入的内容
element=wd.find_element(By.XPATH,'//input[@id="su"]').click()
根据class属性选择
<input type="text" class="s_ipt" name="wd" id="kw" maxlength="100" autocomplete="off">
element=wd.find_element(By.XPATH,'//input[@class="s_ipt"]').send_keys("菜鸟教程")
#kw是检查html编码,send_keys(“”)是输入框中输入的内容
element=wd.find_element(By.XPATH,'//input[@class="btn.self-btn.bg.s_btn"]').click()
版权声明:本文为m0_59520856原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。