selenium常用总结
一.准备工作
pip install selenium #安装操作
from selenium import webdriver #引入相关模块 from selenium.webdriver.common.action_chains import ActionChains driver = webdriver.Chrome() #实例化 driver.get("http://www.baidu.com") #发起get请求
此外我们还需下载 chromedriver.exe 将其放入本地python环境 例如:(C:\Users\cyx\AppData\Local\Programs\Python\Python37-32)
二.常用的元素筛选方法
driver.find_element_by_id('test') #根据Id进行筛选 driver.find_element_by_class_name('') #根据class名称筛选 driver.find_element_by_name() #根据元素的name driver.find_element_by_xpath() #根据元素的xpath进行筛选 driver.find_element_by_link_text(u'首页') #根据<a>标签中的文本连接进行筛选 获取多个元素时只需将方法中的element改为elements
三.给选中的元素赋值
userNameInput=driver.find_element_by_xpath('//*[@id="loginBlock"]/div[1]/div/div/input') #定位元素 userNameInput.send_keys('admin') #进行赋值操作
四.关于页面的跳转问题
1. url改变时,但在本页刷新时,需调用以下方法来进行,url的更换,不然在进行元素的定位时,还到之前的url去找元素。有时页面跳转后,需停留几秒,不然依然定位不到元素
#driver.current_window_handle
2.页面跳转,打开新窗体时
#driver.switch_to.window(driver.window_handles[-1]) #定位到最新的窗体,可以对应的下标获取对应的元素
五.悬浮元素,定位二级菜单的问题
定位元素 #ContractManage=driver.find_element_by_xpath('//*[@id="mp-sidemenu"]/ul/li[4]/a/span[2]') 悬浮到该元素 #ActionChains(driver).move_to_element(ContractManage).perform() 点击二级菜单 #ContractReg=driver.find_element_by_link_text(u'合同登记').click()
注意事项:有时从浏览器中copy的xpath,导致定位不到元素,可能是由于页面js的动态加载问题,需检查页面源代码,查找正确的xpath