临沂高端大气网站建设,个人网站免费空间申请,甘肃建设银行网站,大连个人网站开发制作1、什么是selenium?
Selenium是一个用于Web应用程序测试的工具。Selenium 测试直接运行在浏览器中#xff0c;就像真正的用户在操作一样。支持通过各种driver(FirfoxDriver#xff0c;IternetExplorerDriver#xff0c;OperaDriver#xff0c;ChromeDriver)驱动真实浏览器…1、什么是selenium?
Selenium是一个用于Web应用程序测试的工具。Selenium 测试直接运行在浏览器中就像真正的用户在操作一样。支持通过各种driver(FirfoxDriverIternetExplorerDriverOperaDriverChromeDriver)驱动真实浏览器完成测试。selenium也是支持无界面浏览器操作的。
2、为什么使用selenium?
模拟浏览器功能自动执行网页中的js代码实现动态加载
3、如何安装selenium?
需要下载驱动咱们以谷歌浏览器为例下载谷歌驱动
①、操作谷歌浏览器驱动下载地址
http://chromedriver.storage.googleapis.com/index.html
注意驱动的版本需要和谷歌浏览器版本一致
查看谷歌浏览器版本在谷歌浏览器中输入 ”chrome://version/“
②、安装
pip install selenium
4、驱动的使用方式
4.1、PATH 环境变量
将下载后的驱动放到环境变量中在命令行输入 ”chromedriver“ 如果出现一下界面说明安装成功 安装成功后代码中无需指定驱动位置
from selenium import webdriverdriver webdriver.Chromeurl https://www.baidu.comdriver.get(url)4.2、在编写代码时指定驱动位置
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
# 指定驱动位置
service Service(executable_path/path/to/chromedriver)
driver webdriver.Chrome(serviceservice) 5、Python操作selenium实例
实例环境
osMac
谷歌版本111.0.5563.110
驱动版本111.0.5563.64
selenium4.8.3
5.1、基础
代码注意执行完会一闪而过是因为我们后续没有代码自动测试结束
# 导入包
from selenium import webdriver# 创建谷歌浏览器驱动
driver webdriver.Chrome()# 定义要浏览的网页url
url https://www.baidu.com# 在浏览器中执行操作
driver.get(url)# 导入time 包 让线程睡眠4秒可以更好的看到效果
import time
time.sleep(4) 5.2、获取浏览器相关信息 # 打开网站
driver.get(url)# 获取当前浏览器标题
title driver.titleprint(title)# 获取当前浏览的url
cur_url driver.current_urlprint(cur_url)# 后退按下浏览器的后退按钮
driver.back()# 前进按下浏览器的前进键
driver.forward()# 刷新刷新当前页面
driver.refresh()
5.3、查找元素
先看下百度首页输入框和百度一下按钮的ID 知道了这两个输入框的ID后我们的需求为自动在输入框中输入”ChatGPT“并且自动点击百度一下进行搜索代码如下
# 导入包
from selenium import webdriver
from selenium.webdriver.common.by import By
import time# 创建谷歌浏览器驱动
driver webdriver.Chrome()# 定义要浏览的网页url
url https://www.baidu.com# 打开网站
driver.get(url)# 获取输入框
kw driver.find_element(By.ID, kw)
# 将成龙自动输入到输入框中
kw.send_keys(ChatGPT)# 获取百度一下按钮
su driver.find_element(By.ID, su)
# 自动点击百度一下按钮
su.click()# 睡眠4秒看效果
time.sleep(4)具体效果大家就拷贝代码自行查看了。
代码中有用到通过ID获取input元素然后通过send_keys 自动填充输入框最后通过click自动触发点击事件。
定位元素所有策略如下注意记得导入包
策略描述By.ID通过HTML元素ID获取元素By.NAME通过HTML元素属性name值获取元素By.TAG_NAME通过HTML元素名称获取元素By.CLASS_NAME通过元素class属性值获取元素 By.CSS_SELECTOR通过css选择器获取元素By.XPATH通过Xpath语法获取元素By.LINK_TEXT通过连接文本值获取元素By.PARTIAL_LINK_TEXT通过模糊查询文本值获取元素
我们通过一下代码片段实现以上每种策略实例演示
ol idvegetablesli classpotatoes…li classonions…li classtomatoesspanTomato is a Vegetable/span…
/ol
ul idfruitsli classbananas…li classapples…li classtomatoesspanTomato is a Fruit/span…
/ul
input typetext namewd/
input typesubmit value百度一下 idsu classbtn self-btn bg s_btn
a hrefhttps://blog.csdn.net/u011837804个人中心/p代码实例
fruits driver.find_element(By.ID, fruits)
fruit fruits.find_element(By.CLASS_NAME,tomatoes)
fruit driver.find_element(By.CSS_SELECTOR,#fruits .tomatoes)
plants driver.find_elements(By.TAG_NAME, li)
wd driver.find_element(By.NAME, wd)
wd driver.find_element(By.XPATH, //input[namewd])
a driver.find_element(By.LINK_TEXT, 个人中心)
a driver.find_element(By.PARTIAL_LINK_TEXT, 个人)
5.4、操作元素
直接上代码 # 获取输入框
kw driver.find_element(By.ID, kw)# 填充输入框
kw.send_keys(成龙)# 清除输入框
kw.clear()
5.5、获取元素信息
# 获取元素是否显示 返回 布尔值
is_email_visible driver.find_element(By.NAME, email_input).is_displayed()# 获取元素是否启用 返回 布尔值
value driver.find_element(By.NAME, btnK).is_enabled()# 针对checkbox返回是否被选中
value driver.find_element(By.CSS_SELECTOR, input[typecheckbox]:first-of-type).is_selected()# 获取元素标签名称
attr driver.find_element(By.CSS_SELECTOR, h1).tag_name# 获取元素的位置信息#元素左上角的X轴位置#元素左上角的y轴位置#元素的高度#元素的宽度
res driver.find_element(By.CSS_SELECTOR, h1).rect# 获取元素CSS值
cssValue driver.find_element(By.LINK_TEXT, More information...).value_of_css_property(color)# 获取文本内容
text driver.find_element(By.CSS_SELECTOR, h1).text# 获取元素属性值
email_txt driver.find_element(By.NAME, email_input)
value_info email_txt.get_attribute(value)