Selenium核心技巧
- WebDriver:浏览器(交互)
- find_element:元素定位
- WebElement元素(交互)
重点内容:
- 元素定位
- 等待
- 元素交互
- 文件上传(3种)
- 滚动条处理
- JS代码(强制操作)
1、元素定位
-
方法
- find_element:如果成功返回元素,如果失败抛出异常。
- find_elements:如果成功返回list,如果失败返回list(空)
-
策略
*基于元素的属性进行定位 ID = "id" NAME = "name" TAG_NAME = "tag name" CLASS_NAME = "class name" 基于链接文件进行定位 LINK_TEXT = "link text" PARTIAL_LINK_TEXT = "partial link text" 可以定位任意元素 XPATH = "xpath" CSS_SELECTOR = "css selector"
2、等待
-
隐式等待
*driver = webdriver.Edge(options=options, service=service) driver.implicitly_wait(20) #隐式等待(放在浏览器启动之后,等待浏览器加载完成)
-
显示等待
*#显示等待(一般放在需要等待的上一个执行代码段) # WebDriverWait(driver,timeout=10).until(lambda x: driver.find_element(By.XPATH, value='//*[@id="s-top-left"]/a[1]')) wait=WebDriverWait(driver, 10) wait.until(lambda d: 1==1) #等待条件 #el=driver.find_element(by='xpath', value='//*[@id="s-top-left"]/a[1]') el=driver.find_element(By.XPATH, value='//*[@id="s-top-left"]/a[1]')
-
流畅等待(更高级的等待)
-
强制等待(休眠)
*#强制等待 import time time.sleep(3)