selenium超详解

讲解selenium之前,为了让读者更明白selenium,我会贴一些网站的图片和代码。
但是,【注意!!!】
【以下网站图片和代码仅供展示!!如果大家需要练习,请自己再找别的网站练习。】
【尤其是政府网站,千万不能碰哦!】

一、Selenium + PhantomJS | Chrome | Firefox

1、Selenium概述

2、PhantomJS概述

3、环境安装

4、selenium + Chrome

二、Selenium常用方法

详细用法:https://blog.csdn.net/weixin_36279318/article/details/79475388

1、浏览器对象

2、定位节点

定位一个元素定位多个元素含义
find_element_by_id()find_elements_by_id()通过元素id定位
find_element_by_name()find_elements_by_name()通过元素name定位
find_element_by_class_name()find_elements_by_class_name()通过类名进行定位
find_element_by_xpath()find_elements_by_xpath()通过xpath表达式定位
find_element_by_link_text()find_elements_by_link_text()通过完整超链接定位
find_element_by_partical_link_text()find_elements_by_partical_link_text()通过部分链接定位
find_element_by_tag_name()find_elements_by_tag_name()通过标签定位
find_element_by_css_selector()find_elements_by_css_selector()通过css选择器进行定位

3、节点对象方法

4、selenium+Chrome案例

三、Selenium 高级操作

1、设置无界面模式

2、selenium执行JS脚本

3、练习

4、selenium键盘操作

Selenium中的Key模块为我们提供了模拟键盘按键的方法,那就是send_keys()方法。它不仅可以模拟键盘输入,也可以模拟键盘的操作。

常用的键盘操作如下:

模拟键盘按键说明
send_keys(Keys.BACK_SPACE)输入删除键(BackSpace)
send_keys(Keys.SPACE)输入空格键(Space)
send_keys(Keys.TAB)输入制表键(Tab)
send_keys(Keys.ESCAPE)输入回退键(Esc)
send_keys(Keys.ENTER)输入回车键(Enter)

组合键的使用

模拟键盘按键说明
send_keys(Keys.CONTROL, ‘a’)全选(Ctrl+A)
send_keys(Keys.CONTROL, ‘c’)复制(Ctrl+C)
send_keys(Keys.CONTROL, ‘x’)剪切(Ctrl+X)
send_keys(Keys.CONTROL, ‘v’)粘贴(Ctrl+V)
send_keys(Keys.F1…Fn)键盘 F1…Fn

5、selenium鼠标操作

在 WebDriver 中, 将这些关于鼠标操作的方法封装在 ActionChains 类提供。

方法说明
ActionChains(driver)构造ActionChains对象
context_click()执行鼠标悬停操作
move_to_element(above)右击
double_click()双击
drag_and_drop()拖动
move_to_element(above)执行鼠标悬停操作
context_click()用于模拟鼠标右键操作, 在调用时需要指定元素定位
perform()执行所有 ActionChains 中存储的行为,可以理解成是对整个操作的提交动作
from selenium import webdriver
#0.引入 ActionChains 类
from selenium.webdriver.common.action_chains import ActionChains

#1.创建Chrome浏览器对象,这会在电脑上在打开一个浏览器窗口
driver = webdriver.Firefox(executable_path ="F:\GeckoDriver\geckodriver")

driver.get("https://www.baidu.com")

#2.定位到要悬停的元素
element= driver.find_element_by_link_text("设置")

#3.对定位到的元素执行鼠标悬停操作
ActionChains(driver).move_to_element(element).perform()

#找到链接
elem1=driver.find_element_by_link_text("搜索设置")
elem1.click()

#通过元素选择器找到id=sh_2,并点击设置
elem2=driver.find_element_by_id("sh_1")
elem2.click()

#保存设置
elem3=driver.find_element_by_class_name("prefpanelgo")
elem3.click()

6、selenium切换句柄

请添加图片描述
注意!!】以上图片仅供展示,请勿爬取。

注意!!】以下代码仅供展示,请大家换个网站练习。
请添加图片描述

-- mysql 存储数据
create database mzbdb charset utf8;
use mzbdb;
create table mzbtab(
	name varchar(30),
    code varchar(20)
)charset=utf8;

注意!!】以下代码仅供展示,请大家换个网站练习。
请添加图片描述

7、selenium frame

9、控制浏览器操作的一些方法

方法说明
webdriver.set_window_size()设置浏览器的大小
webdriver.back()控制浏览器后退
webdriver.forward()控制浏览器前进
webdriver.refresh()刷新当前页面
webdriver.clear()清除文本
webdriver.send_keys(value)模拟按键输入
webdriver.click()单击元素
webdriver.submit()用于提交表单
webdriver.get_attribute(name)获取元素属性值
webdriver.is_displayed()设置该元素是否用户可见
webdriver.size返回元素的尺寸
webdriver.text获取元素的文本
from selenium import webdriver
from time import sleep

#1.创建Chrome浏览器对象,这会在电脑上在打开一个浏览器窗口
browser = webdriver.Firefox(executable_path ="F:\GeckoDriver\geckodriver")

#2.通过浏览器向服务器发送URL请求
browser.get("https://www.baidu.com/")

sleep(3)

#3.刷新浏览器
browser.refresh()

#4.设置浏览器的大小
browser.set_window_size(1400,800)

#5.设置链接内容
element=browser.find_element_by_link_text("新闻")
element.click()

element=browser.find_element_by_link_text("“下团组”时间")
element.click()
属性说明
title用于获得当前页面的标题
current_url用户获得当前页面的URL
text获取搜索条目的文本信息

共计人评分,平均

到目前为止还没有投票!成为第一位评论此文章。

(0)
xiaoxingxing的头像xiaoxingxing管理团队
上一篇 2023年3月10日
下一篇 2023年3月10日

相关推荐