如何提高脚本的稳定性?
如何提高selenium脚本的执行速度?”
“selenium中如何保证操作元素的成功率?也就是说不管网络加载慢还是快”
如果一个元素今天你能定位到,过两天就定位不到了,只要这个页面没变过,说明定位方法是没啥问题的。
优化方向:
1.不要右键复制xpath(十万八千里那种路径,肯定不稳定),自己写相对路径,多用id为节点查找
2.定位没问题,第二个影响因素那就是等待了,sleep等待尽量少用(影响执行时间)
driver.implicitly_wait(30)这个等待也不要用,不要以为是全局的就是好事,有些js加载失败时候会一直等,并且页面跳转时候也无法识别
3.定位元素方法重新封装,结合WebDriverWait和expected_conditions判断元素方法,自己封装一套定位元素方法
from selenium import webdriver from selenium.webdriver.support import expected_conditions as EC from selenium.webdriver.support.ui import WebDriverWait def find(locator, timeout=30): '''定位元素,参数locator是元祖类型, 如("id", "yoyo")''' element = WebDriverWait(driver, timeout, 1).until(EC.presence_of_element_located(locator)) return element