前言:
selenium中导入本地html时,路径引用:
import osfromselenium import webdriver
current=os.getcwd()
chrome_driver_path=os.path.join(current,'../webdriver/chromedriver')
page_path= os.path.join(current,'../pages/wait.html') #本地html文件
driver= webdriver.Chrome(executable_path=chrome_driver_path)
driver.get('file://'+page_path)
一、等待操作
1.1显式等待
特点:
1)全局设置 对find_element、find_elements生效
2)每隔500ms在界面进行一次检查,如果检查到了就不报错
3)下面每个find_element、find_elements都会检查1~20秒
举例:
driver.implicitly_wait(20)
driver.find_element(By.XPATH,'//button[@id="b"]').click()
driver.find_element(By.XPATH,'//button[@id="b"]').click()
1.2隐式等待
特点:1)比较难写 2)只针对一个元素生效
举例:
先导入模块:fromselenium.webdriver.support.wait import WebDriverWait
再操作:
element= WebDriverWait(driver,20).until(lambda x:x.find_element(By.XPATH,'//button[@id="b"]'))
print(element.get_attribute('class'))
#其中匿名函数使用说明:add=lambda x,y:x+y
print(add(3,4))
二、鼠标键盘事件
2.1鼠标操作(需添加ActionChains类)
context_click():右击
double_click():双击
drag_and_drop():拖动
move_to_element():鼠标移动到某个元素上
click_and_hold():按下鼠标左键在一个元素上
举例:
鼠标右击操作:
from selenium.webdriver.common.action_chains import ActionChains
mouse.context_click(元素对象).perform()
模拟鼠标点击:
ActionChains(driver).click(元素对象).release(元素对象).perform()
2.2键盘操作