一、浏览器基本操作
1.浏览器加载URL
driver.get("https://www.baidu.com/")
2.浏览器最大化
driver.maximize_window()
3.设置浏览器宽、高
# 参数数字为像素点,设置浏览器宽高都为800像素
driver.set_window_size(800,800)
4.控制浏览器前进、后退
driver.forward()
driver.back()
5.刷新
driver.refresh()
6.获取当前页面的标题
driver.title()
二、元素定位
webdriver提供了一系列的元素定位方法
元素 | webdriver中的方法 |
id | find_element_by_id() |
name | find_element_by_name() |
class name | find_element_by_class_name() |
tag name | find_element_by_tag_name() |
link text | find_element_by_link_text() |
partial link text | find_element_by_partial_link_text() |
xpath | find_element_by_xpath() |
css selector | find_element_by_css_selector() |
三、id元素定位(根据标签的id定位)
1.示例:百度搜索框
2.F12查找到页面元素为以下html代码,查找id="kw"的元素
3.id定位
#coding:utf-8
from selenium import webdriver
import time
# 百度搜索selenium
driver = webdriver.Chrome()
driver.get("https://www.baidu.com/")
driver.maximize_window()
driver.find_element_by_id("kw").send_keys("selenium") # id 定位输入框元素
driver.find_element_by_id("su").click() # id 定位"百度一下"元素
time.sleep(3)
driver.quit()
四、name元素定位(根据标签的name定位)
1.示例:示例:百度搜索框
2.F12查找到页面元素,name="wd"
3.name定位
from selenium import webdriver
import time
# 百度搜索
driver = webdriver.Chrome()
driver.get("https://www.baidu.com/")
driver.maximize_window()
driver.find_element_by_name("wd").send_keys("selenium") # name 定位输入框元素
driver.find_element_by_id("su").click() # id 定位"百度一下"元素
time.sleep(3)
driver.quit()
五、xpath元素定位
1.示例:百度搜索框
一般的正常copy-xpath就可以了,但是copy不能保证百分百准确,我们也可以手写xpath,写好可以在下方搜索一下
2.xpath定位
from selenium import webdriver
import time
# 百度搜索
driver = webdriver.Chrome()
driver.get("https://www.baidu.com/")
driver.maximize_window()
driver.find_element_by_xpath("//form/span/input[@id='kw']").send_keys("selenium") # xpath 定位输入框元素
driver.find_element_by_xpath("//form/span/input[@id='su']").click() # xpath 定位"百度一下"元素
time.sleep(3)
driver.quit()
六、class name 定位
1.示例:百度搜索框
2.class name 定位
from selenium import webdriver
import time
# 百度搜索
driver = webdriver.Chrome()
driver.get("https://www.baidu.com/")
driver.maximize_window()
driver.find_element_by_class_name("s_ipt").send_keys("selenium") # class name 定位输入框元素
driver.find_element_by_class_name("bg s_btn").click() # class name 定位"百度一下"元素
time.sleep(3)
driver.quit()
七、link text定位
1.link text用来定位文本链接,如通过在百度首页点击'新闻'、'地图'等都可以进入到对应的页面,因此可以用link进行定位:
2.示例:百度首页“新闻”链接
3.link text定位
from selenium import webdriver
import time
# 点击百度首页“新闻”标签
driver = webdriver.Chrome()
driver.get("https://www.baidu.com/")
driver.maximize_window()
driver.find_element_by_link_text("新闻").click()
time.sleep(3)
driver.quit()
八、partial link text定位
1.partial link text定位方式为link text的一个补充,当文件链接过长时,部分匹配定位
2.如以下链接过长定位时只需要截取一部分即可
<a href="http://news.baidu.com" name="tj_trnews" class="mnav">这是全世界全球最关注的新闻</a>
3.partial link text定位
driver.find_element_by_partial_link_text("关注的新闻").click()
九、css selector定位(不太常用)
1.css Selector定位实际就是HTML的css选择器的标签定位
用css定位就不需要从最上面一层开始定位了,可以从当前层最近的容易定位的元素(class或者id)开始。
十、tag name定位(很不常用,不好定位)
当要定位一组元素相同元素时,可以考虑用tagName或name。
总结:
1. 当页面元素有id属性时,最好尽量用id来定位。
2. 当要定位一组元素相同元素时,可以考虑用tagName或name。
3. 当有链接需要定位时,可以考虑linkText或partialLinkText方式。
4. xpath定位用的较多,可以直接复制也可以自己写