叶榭做网站,山东建设人才网站,合肥做网站好的公司哪家好,还有哪些网站可以做淘宝活动吗使用的Python版本为3.8#xff0c;selenium版本为4.15.2 Python自动化:selenium常用方法总结 1. 三种等待方式2. 浏览器操作3. 8种查找元素的方法4. 高级事件 1. 三种等待方式
强制等待 使用模块time下的sleep()实现等待效果隐式等待 使用driver.implicitly_wait()方法#… 使用的Python版本为3.8selenium版本为4.15.2 Python自动化:selenium常用方法总结 1. 三种等待方式2. 浏览器操作3. 8种查找元素的方法4. 高级事件 1. 三种等待方式
强制等待 使用模块time下的sleep()实现等待效果隐式等待 使用driver.implicitly_wait()方法具有全局性在代码前面设置后整个程序运行过程中都会有效都会等待页面加载完成在执行后续不需要每次设置一次。 缺点非要加载整个页面才执行代码这样影响代码的执行效率。 参考代码
from selenium import webdriverdriver webdriver.Chrome()
driver.get(url)
driver.implicitly_wait(5)显示等待 必须在每个需要等待的元素前面进行声明明确要等到某个元素的出现或者某个元素的可点击等。 需要用到 WebDriverWait 和 expected_conditions 参考代码
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as ECele WebDriverWait(driver,10,0.5).until(EC.presence_of_element_located(By.,))2. 浏览器操作 driver.maximize_window() # 最大屏幕 driver.minimize_window() # 最小屏幕 driver.quit() # 退出浏览器 driver.close() # 关闭当前页面 driver.set_window_size(width,height) # 设置浏览器的大小 driver.set_window_position(x,y) # 设置浏览器在电脑上显示的位置 driver.back() # 模拟浏览器后退按钮 driver.forward() # 模拟浏览器前进按钮 driver.refresh() # 刷新当前页面 driver.title # 当前页面的标题 driver.current_url # 当前页面的网址 3. 8种查找元素的方法
By.XPATH 通用的查找方式 获取百度页面输入框
driver.find_element(By.XPATH,//input[idkw]).send_keys(哈哈)By.CLASS_NAME 通过class属性查找
driver.find_element(By.CLASS_NAME,s_ipt).send_keys(哈哈)By.ID 通过id属性查找
driver.find_element(By.ID,kw).send_keys(哈哈)By.CSS_SELECTOR 通过css选择器 会写css样式的就知道
driver.find_element(By.CSS_SELECTOR,#kw).send_keys(哈哈)By.NAME 通过name属性进行查找
driver.find_element(By.NAME,wd).send_keys(哈哈)By.LINK_TEXT 通过链接文本 在百度页面找到贴吧超链接并进入
driver.find_element(By.LINK_TEXT,贴吧).click()By.PARTIAL_LINK_TEXT 部分链接文本
driver.find_element(By.PARTIAL_LINK_TEXT,贴).click()By.TAG_NAME 通过标签元素
4. 高级事件
浏览器弹框
# 浏览器弹框driver.switch_to.alert.accept() 确认.dismiss() 取消框架页
driver.switch_to.frame()之所以用到这个是因为有的页面可能不单单是一个页面而是通过frame或者iframe标签元素把几个页面组合成一个页面。查找元素时需要注意的是如果查找的元素不在当前页面下那么需要找到对应页面然后使用上述那个方法跳到这个对应页面下然后才能找到对应元素。
窗口切换
objs driver.window_handles
# 获取当前的窗口对象 列表
driver.switch_to.window(objs[1])
# 下标从0开始4 . 滑块验证
from selenium import webdriver
from selenium.webdriver import ActionChains
from selenium.webdriver.common.by import Bydriver webdriver.Chrome()
driver.get(urlfile:///D:/Sublime/vscode/Test/%E6%BB%91%E5%9D%97%E6%B5%8B%E8%AF%95/%E6%BB%91%E5%8A%A8%E9%AA%8C%E8%AF%81.html)
driver.maximize_window()
ele driver.find_element(By.XPATH,//div[classslider])
# 滑块元素
ac ActionChains(driver)
ac.click_and_hold(ele).move_by_offset(300,0).perform()
# 鼠标点击 握住 向右移动300像素
ac.release()
# 释放运行结果 【注】:还有很多高级操作这里只是总结最基础的而已。