2024年最全selenium UI使用小技巧集合_python selenium 中

al = driver.switch_to.alert
al.send_keys(“口罩太贵了”)
al.accept() # 确认对话框
time.sleep(3)
driver.quit()


### 鼠标事件


用selenium做自动化,有时候会遇到需要模拟鼠标操作才能进行的情况,比如单击、双击、点击鼠标右键、拖拽等等。而selenium给我们提供了一个类来处理这类事件——ActionChains


ActionChains 类提供了鼠标操作的常用方法:


* perform():执行操作
* context\_click():右击;
* double\_click():双击;
* drag\_and\_drop():拖动;
* move\_to\_element():鼠标悬停。



from selenium import webdriver

引入 ActionChains 类

from selenium.webdriver.common.action_chains import ActionChains

driver = webdriver.Chrome()
driver.get(“https://www.baidu.cn”)

定位到要悬停的元素

above = driver.find_element_by_link_text(“设置”)

对定位到的元素执行鼠标悬停操作

ActionChains(driver).move_to_element(above).perform()

driver.quit()


### 键盘事件


Keys()类提供了键盘上几乎所有按键的方法。前面了解到, send\_keys()方法可以用来模拟键盘输入, 除此 之外, 我们还可以用它来输入键盘上的按键, 甚至是组合键, 如 Ctrl+A、 Ctrl+C 等



from selenium import webdriver

引入 Keys 模块

from selenium.webdriver.common.keys import Keys

driver = webdriver.Chrome()
driver.get(“http://www.baidu.com”)

输入框输入内容

driver.find_element_by_id(“kw”).send_keys(“seleniumm”)

删除多输入的一个 m

driver.find_element_by_id(“kw”).send_keys(Keys.BACK_SPACE)

输入空格键+“教程”

driver.find_element_by_id(“kw”).send_keys(Keys.SPACE)
driver.find_element_by_id(“kw”).send_keys(“教程”)

ctrl+a 全选输入框内容

driver.find_element_by_id(“kw”).send_keys(Keys.CONTROL, ‘a’)

ctrl+x 剪切输入框内容

driver.find_element_by_id(“kw”).send_keys(Keys.CONTROL, ‘x’)

ctrl+v 粘贴内容到输入框

driver.find_element_by_id(“kw”).send_keys(Keys.CONTROL, ‘v’)

通过回车键来代替单击操作

driver.find_element_by_id(“su”).send_keys(Keys.ENTER)

driver.quit()


以下为常用的键盘操作:


* 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) 键盘 F1
* ……
* send\_keys(Keys.F12) 键盘 F12


### iframe切换


iframe,又叫浮动帧标记,是内嵌的网页元素,可以将一个html文件嵌入到另一个html文件中显示


**对iframe进行操作,需要用到以下三种方法:**


switch\_to\_iframe() 切换到iframe上(未来会被删除,不建议使用)


switch\_to.frame() 切换到iframe上


switch\_to.default\_content() 切换回原主页面


**通过如下方式进行切换操作**


#定位到iframe


iframe=driver.find\_element\_by\_id(“x-URS-iframe”)


#切换到iframe


driver.switch\_to\_frame(iframe)



from selenium import webdriver
import time

driver = webdriver.Chrome(“D:\tool\selenium\chromedriver.exe”)

隐式等待

driver.implicitly_wait(5)
driver.get(“D:\test\script\study\seleniumStu\day3\test.html”)

“”"
对iframe进行操作,需要用到以下三种方法:
switch_to_iframe() 切换到iframe上
switch_to.frame() 切换到iframe上
switch_to.default_content() 切换回原主页面
“”"
iframe = driver.find_element_by_id(“f91fb5bc-bd95-45bf-bd77-977a2afbd25f”)
driver.switch_to.frame(iframe)
driver.find_element_by_id(“e4890ded-16e1-4445-bf8e-7f655793f332”).send_keys(“haha”)

time.sleep(5)
driver.quit()


### 多标签页切换


在页面操作过程中有时候点击某个链接会弹出新的窗口,这时就需要切换到新打开的窗口上进行操作。WebDriver提供了以下方法


current\_window\_handle:获得当前标签页句柄


window\_handles:返回所有便签页的句柄


switch\_to.window(标签页句柄):切换到对应的标签页


关闭标签页使用 close 方法



from selenium import webdriver

创建浏览器驱动对象

driver = webdriver.Chrome()

访问网址

driver.get(“http://www.baidu.com”)

找到搜索按钮

input_element = driver.find_element_by_id(“kw”)

输入搜索内容

input_element.send_keys(“松勤\n”)

点击松勤教育官网

driver.find_element_by_css_selector(“#\34 > h3 > a > em”).click()

获得当前所有打开的窗口的句柄

all_handles = driver.window_handles

for handle in all_handles:
driver.switch_to.window(handle)
print(driver.title)

退出浏览器

driver.quit()

做了那么多年开发,自学了很多门编程语言,我很明白学习资源对于学一门新语言的重要性,这些年也收藏了不少的Python干货,对我来说这些东西确实已经用不到了,但对于准备自学Python的人来说,或许它就是一个宝藏,可以给你省去很多的时间和精力。

别在网上瞎学了,我最近也做了一些资源的更新,只要你是我的粉丝,这期福利你都可拿走。

我先来介绍一下这些东西怎么用,文末抱走。


(1)Python所有方向的学习路线(新版)

这是我花了几天的时间去把Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。

最近我才对这些路线做了一下新的更新,知识体系更全面了。

在这里插入图片描述

(2)Python学习视频

包含了Python入门、爬虫、数据分析和web开发的学习视频,总共100多个,虽然没有那么全面,但是对于入门来说是没问题的,学完这些之后,你可以按照我上面的学习路线去网上找其他的知识资源进行进阶。

在这里插入图片描述

(3)100多个练手项目

我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了,只是里面的项目比较多,水平也是参差不齐,大家可以挑自己能做的项目去练练。

在这里插入图片描述

(4)200多本电子书

这些年我也收藏了很多电子书,大概200多本,有时候带实体书不方便的话,我就会去打开电子书看看,书籍可不一定比视频教程差,尤其是权威的技术书籍。

基本上主流的和经典的都有,这里我就不放图了,版权问题,个人看看是没有问题的。

(5)Python知识点汇总

知识点汇总有点像学习路线,但与学习路线不同的点就在于,知识点汇总更为细致,里面包含了对具体知识点的简单说明,而我们的学习路线则更为抽象和简单,只是为了方便大家只是某个领域你应该学习哪些技术栈。

在这里插入图片描述

(6)其他资料

还有其他的一些东西,比如说我自己出的Python入门图文类教程,没有电脑的时候用手机也可以学习知识,学会了理论之后再去敲代码实践验证,还有Python中文版的库资料、MySQL和HTML标签大全等等,这些都是可以送给粉丝们的东西。

在这里插入图片描述

这些都不是什么非常值钱的东西,但对于没有资源或者资源不是很好的学习者来说确实很不错,你要是用得到的话都可以直接抱走,关注过我的人都知道,这些都是可以拿到的。

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化学习资料的朋友,可以戳这里无偿获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

你可能感兴趣的:(程序员,selenium,ui,python)