既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上软件测试知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新
你要问我两个都是直接复制粘贴,有手就行,为啥css排第二?因为大多数情况下,css样式的代码都是长长一坨,万一不顶用,删起来太麻烦了。
基于属性
如果上面懒人方法不管用,一般我会再尝试是否能找到一些唯一的属性来定位,这就要自己找到想定位的标签,观察其对应html属性,例如使用id
driver.find_element("id", "xxxxxx")
或者是class_name
driver.find_element("class_name", "xxxxxx")
不过这种方法,要求其属性值是唯一的,所以也不是万能的,如果这两种方法都没法让你顺利定位到页面元素,那可能就要花一点功夫去深入研究了。
输入本文
有时我们需要在输入框输入一些文本,例如账号密码或者SQL语句才能执行下一步操作,使用selenium也可以轻松完成。
如果输入框是使用ipput标签,那么就可以使用上面的定位元素方法定位到输入框,并使用send_keys来传入文本。
driver.find_element("xpath", "xxxxxx").send_keys("xxxxxx")
但如果页面输入框,并不是形式写的,更多的时候是一个富文本编辑器写在div里面,或者是套在iframe标签里面,这种情况都无法直接通过定位元素来传递文本,大多数情况需要先点击激活编辑器,然后再send_keys,例如下面的形式
driver.find_element(By.CSS_SELECTOR, ".view-lines").click() #点击编辑器
driver.find_element(By.CSS_SELECTOR, ".inputarea").send_keys("xxxxx")
但这种情况,编辑框都是动态加载的,在实际操作时需要灵活运用。
等待指定元素加载完毕
有时我们需要的页面内容需要先通过几步点击才能出现,自然而然就会想到先等几秒,再去操作,但如果对每个按钮都是强制等待一个固定的时间,程序就会显得笨笨的,selenium当然提供一个方法去让你告诉程序,等到某个元素一出来,就去执行后面的页面操作
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
WebDriverWait(driver, 30).until(EC.element_to_be_clickable((By.CSS_SELECTOR, '.el-table__row'))).click()
上面的代码就是告诉程序,在30秒内等到含有’.el-table__row’这个样式的css元素出现,就去点击它,如果超过30秒就超时,后面可以是重试或者异常处理。
接管当前浏览器
最后一个实用的技巧,就是如果让selenium接管当前的浏览器。
如果你尝试写过selenium就会知道,每次执行程序,就会启动一个新的chrome进程,从头开始执行操作,所有登录过的cookie都没了,你需要全部重新操作一遍,这样就很麻烦。
又或者,你根本就不会破解登录,你的任务是可以自动化的,但是需要先进行登录,登录模块你又搞不定,难道就不能告诉selenium你就用我登录好的浏览器去执行代码吗?
答案是可以且操作简单的,我们只需要在命令行先使用下面的代码启动一个远程调试模式的chrome。
chrome.exe --remote-debugging-port=9222 --user-data-dir="C:/user/liuzaoqi/desktop"
这时会新增一个浏览器窗口,不要关闭他,之后在你的Python自动化调试代码开头添加如下内容
![img](https://img-blog.csdnimg.cn/img_convert/8e79d7e95ab0aa1a929c770dd0fc2b06.png)
![img](https://img-blog.csdnimg.cn/img_convert/da8cda07965b12f87aa73d3ae114c43c.png)
![img](https://img-blog.csdnimg.cn/img_convert/5d0990f73ef83f012512ee316e806421.png)
**既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上软件测试知识点,真正体系化!**
**由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新**
**[需要这份系统化的资料的朋友,可以戳这里获取](https://bbs.csdn.net/forums/4f45ff00ff254613a03fab5e56a57acb)**
目、大纲路线、讲解视频,并且后续会持续更新**
**[需要这份系统化的资料的朋友,可以戳这里获取](https://bbs.csdn.net/forums/4f45ff00ff254613a03fab5e56a57acb)**