Selenium
BetterFate!
学习需要的是坚持,而不是三天打鱼两天晒网!
展开
-
Selenium-如何编写Xpath相对路径(持续更新)
🍓学习目标:总结自己遇到的Xpath编写问题 💘如有不足,还望指出 💞如果有帮助的话,希望不吝小手点赞、关注支持一波目录一、已知父节点id和子节点class,要定位字节点一、已知父节点id和子节点class,要定位字节点由于子节点没有id,class又不是唯一的,但是父节点有唯一的id,所以可以使用xpath来定位分析:1、父节点上面的路径都可以用//*来表示相对路径。2、如下图父节点id的name为‘resource-id’,id的值是'com.youdao.原创 2022-04-17 16:59:10 · 1771 阅读 · 0 评论 -
Selenium-新窗口切换
在脚本运行中打开新的窗口之后,如果接下来不切换到新的窗口的话,代码仍然会在原窗口运行,这时候我们需要首先切换到新打开的窗口才能进行后面的操作。代码如下:# 找出新窗口:new_window = driver.window_handles[-1] # '-1'代表打开的最后一个窗口# 切换到新窗口:driver.switch_to.window(new_window)...原创 2022-01-09 16:25:17 · 6180 阅读 · 0 评论 -
Selenium-css_selector详解
css_selector作为我们比较常用的一种元素定位方法,总结了以下一些方法和要点:1. 右键直接copy css_selector的方法2. 如果元素某个属性是唯一的——那么直接在该属性两边加上中括号,就可以定位该元素。 例:<input value="1"> 应用:driver.find_element(By.CSS_SELECTOR, '[value="1"]')3. css可以用多个属性组合的方式定位一个元素 例:<input class="a b原创 2022-01-09 07:44:57 · 24193 阅读 · 3 评论 -
Selenium-如何上传文件
在前端点击的按钮,会跳出让我们去选择文件的框,这个弹出框Selenium是无法识别的,所以它不是真正负责上传文件的控件。真正负责上传文件的控件应该是:<input type="file"...>, 我们需要做的就是定位到这个真正的控件,然后对其send_keys,发送文件的路径即可。原创 2022-01-09 06:46:46 · 8078 阅读 · 0 评论 -
Selenium-ActionChains元素高级操作
Selenium中所有高级操作都被封装在ActionChains这个类中,所以当我们想进行双击,右键点击等等之类的操作的时候,就需要用到ActionChains.当调用ActionChains时,赋予的动作不会立即执行,而是会将所有的操作按顺序存放在一个队列里,只有当调用perform()方法时,队列中的动作才会依次执行。所以在动作行为设计好之后,一定要以perform方法作为结尾。例:当我们想要对找到的元素执行双击的时候from selenium.webdriver import Actio原创 2022-01-09 04:55:44 · 406 阅读 · 0 评论 -
Selenium-网页存在子frame如何定位元素
当我们在定位元素的时候,明明这个元素的属性是唯一的,固定的,但是Selenium就是定位不到这个元素,这个时候,我们就要去考虑一下这个页面是不是存在子frame?原创 2022-01-09 03:31:23 · 9458 阅读 · 0 评论 -
强制等待,隐式等待和显式等待的区别
强制等待:time.sleep(3) 在需要等待的操作之前加上等待时间time.sleep(3)强制等待固定时间3s。隐式等待:driver.implicitly_wait(5) 隐式等待是一种智能等待,可以自动判断需要等待多久,括号中的5代表的是最大等待时间 隐式等待只需要在声明driver之后,写一次,就能影响后面所有的代码。 隐式等待判断的是页面元素的加载,如果页面没有刷新过,隐式等待就不起作用,比如跳弹出框。显式等待:显示等待的代码定义了等待条件,只有该条件触发,才执行后续代原创 2022-01-04 02:12:11 · 1479 阅读 · 0 评论 -
find_element和find_elements的区别
find_elements:找到所有满足条件的页面元素。 通过下标来选择第几个。 经常用来组合className或者tagname使用。 使用方法和find_element一样。find_element:找到满足条件的第一个页面元素。 所以driver.find_elements(...)[0] = driver.find_element(...)举例:对于这三个select类型的下拉框,className, xpath和css_selector都无法直接定位, 但是他们都有同样原创 2022-01-04 01:25:30 · 1532 阅读 · 0 评论 -
Selenium-Select类型的下拉框定位方法
对于select类型的下拉框,可以调用select类的select方法去定位:定位到要选择的下拉框 element = driver.find_element(...) 把找到的页面元素,转换成下拉框的类型Select:select = Select(element) 调用Select类中的select方法: 通过Value值:select.select_by_value(选项的value属性的值) 通过index值:select.select_by_index(第几个选项) 通过文本:s原创 2022-01-04 00:15:28 · 6543 阅读 · 1 评论 -
Selenium-Alert弹出框常用处理办法
Alert弹出框由于不是html的页面元素,而是JavaScript的控件,所以不能右键检查,用传统的方法去操作。Selenium提供了三个常用处理alert的方法:点击确定按钮: driver.switch_to.alert.accept() 点击取消按钮: driver.switch_to.alert.dismiss() 获取弹出框提示的文本信息: driver.switch_to.alert.text 举例,如下图弹出框:代码如下:1 # 点.原创 2022-01-03 21:45:58 · 5469 阅读 · 0 评论 -
Selenium-日历控件-删除readonly方法
使用Selenium在面对日历控件的时候,如果通过一个个元素去点击的话,无疑是很繁琐的。而大部分日历控件虽然是input输入框,但是一般都会有一个readonly属性,Selenium无法删除一个元素的属性,但是JavaScript可以,这时候就可以通过js来删除readonly属性,然后再去输入。原创 2022-01-03 17:12:35 · 1960 阅读 · 0 评论 -
Selenium-submit方法运用
在表单中如果提交按钮难以定位去点击,可以通过submit方法来提交表单中任一元素即可完成提交。原创 2022-01-03 15:50:21 · 1738 阅读 · 0 评论 -
Selenium-新八大元素定位方法(BY)
引言:看视频的时候发现好多视频使用的还是老版的元素定位方法,但是对于新版Python来说,已经弃用了之前的元素定位方法,所以在使用的时候会发现有报错,会被一条横线划掉。重新整理了一下目前使用的元素定位方法:driver.find_element(By.'方式', "xxx"),同时新方法需要导入By包。8种元素定位方式(各举一例):from selenium import webdriverfrom selenium.webdriver.common.by import Bydriver .原创 2021-12-30 01:29:20 · 9358 阅读 · 3 评论 -
Python-Selenium环境搭建
记录一下小白学习Python-Selenium环境搭建(以Chrome浏览器为例)的步骤原创 2021-12-27 00:53:11 · 590 阅读 · 0 评论