Selenium 自动化 主要就是:
1、选择页面元素
2、操作页面元素:
输入操作:点击、输入文字、拖拽等。
输出操作:获取元素的各种属性。
3、根据界面上获取的数据进行分析和处理
选择元素:
1、WebDriver:操作整个浏览器和当前整个页面
当前页面上的选择符合查找条件的对象
打开网址、回退、前进、刷新网页
获取、改变浏览器窗口大小,关闭浏览器、截屏
获取、设置cookies
2、WebElement:操作和对应web元素
当前web元素的所有子元素里面符合查找条件的对象
操作该web元素,比如:
点击元素
输入字符
获取元素坐标、尺寸、文本内容、其他的属性信息
通过id选择元素:
一个web元素:
id是在DOM中唯一标志这个元素的属性。
查找的效率最高
写法1:
from selenium import webdriver
driver = webdriver.Chrome()
driver.get('网址')
element = driver.find_element_by_id('kw')
写法2:
from selenium.webdriver.common.by import By
element = driver.find_element(by=By.ID, value ="kw")
没有找到:
selenium.common.exceptions.NoSuchElementException
获取元素信息
text属性 显示该元素在web页面显示出来的文本内容
get_attribute 方法
某个属性的值
element.get_attribute('herf')
该元素对应html源代码
element.get_attribute('outerHTML')
该元素内部部分的html源代码
element.get_attribute('innerHTML')
通过name选择元素:
一个web元素:
返回的是第一个找到的元素:
cheese = driver.find_element_by_name("cheese")
返回所有元素:
cheese = driver.find_elements_by_name("cheese")
如果找不到,返回空列表,不抛出异常
通过class选择元素:
一个web元素:
返回所有元素
chesses = driver.find_elements_by_class_name("cheese")
通过tag名选择元素:
tag名如果唯一的,可以根据tag名定位
假设html中有如下片段
可以
frame = driver.find_element_by_tag_name("firame")
通过连接文本选择元素:
对于连接,可以通过其链接文本的内容
可以这样选择:
ele = driver.find_element_by_link_text("转到百度")
我们甚至可以只需要通过部分文本去找到该链接元素:
ele = driver.find_element_by_partial_link_text("百度")