有些特殊的系统可能需要模拟键盘或者鼠标的操作才可以
鼠标的操作不仅仅是click()单击操作,还有很多包含在ActionChains类中
context_click(elem) 右击鼠标点击元素elem,另存为等行为
double_click(elem) 双击鼠标点击元素elem,地图web可实现放大
drag_and_drop(source,target) 拖动鼠标,源元素按下左键移动至目标元素释放
move_to_element(elem) 鼠标移动到一个元素上,也就是鼠标悬浮
click_and_hold(elem) 按下鼠标左键在一个元素上
perform() 再通过调用该函数执行AcitonChains中存储的行为
实例:
百度搜索首页:设置:搜索设置
设置是悬浮的,选中搜索设置
#! /usr/bin/env python #coding=utf-8 from selenium import webdriver from selenium.webdriver.common.action_chains import ActionChains import time ''' 百度搜索首页:设置:搜索设置 ''' driver = webdriver.Firefox() driver.get("https://www.baidu.com/") time.sleep(3) #利用链接,定位到"设置"元素 mm = driver.find_element_by_link_text("设置") ActionChains(driver).move_to_element(mm).perform() time.sleep(3) driver.find_element_by_link_text("搜索设置").click() time.sleep(5) driver.quit()
百度首页-百度log图片-右键点击
#! /usr/bin/env python #coding=utf-8 from selenium import webdriver from selenium.webdriver.common.action_chains import ActionChains import time driver = webdriver.Firefox() driver.get("https://www.baidu.com/") time.sleep(3) #鼠标移动到图片上,右击 elem_pic = driver.find_element_by_xpath(".//*[@id='lg']/img") print("图片资源地址:",elem_pic.get_attribute("src")) action = ActionChains(driver).move_to_element(elem_pic) action.context_click(elem_pic) action.perform() time.sleep(5) driver.quit()
结果:图片资源地址: https://www.baidu.com/img/bd_logo1.png