selenium操作页面元素总结
1.操作悬浮菜单和二级链接
from selenium.webdriver.common.action_chains import ActionChains from selenium import webdriver driver = webdriver.Firefox() #找到一级菜单元素,将鼠标移到上面 Menu = driver.find_element_by_link_text("menu_name") ActionChains(driver).move_to_element(Menu).perform() #找到二级菜单元素,执行点击操作 subMenu = driver.find_element_by_link_text("subMenu_name") subMenu.click()
2.操作日历控件
当日历控件(input)的属性readonly="true"时,不能直接对日历控件进行send_keys赋值。
通常方法是用js直接改变日历控件的value,然后webdriver调用js。
js获取页面元素的方法为getElementByID,当元素没有ID时,只能用className定位。。。。
#找到日历元素 data1 = element.find_element_by_xpath("//tbody[@id='***']/tr[1]/td[3]/input") #使用js改变日历的value js = "document.getElementsByClassName('***')[0].value='2018-05-03';" #webdriver执行js driver.execute_script(js, data1)
3.操作下拉列表:select>option结构
方法1.定位select,然后通过tag name定义所有的option,通过数组索引定位
driver.find_element_by_id("select").find_elements_by_tag_name("option")[1].click();
方法2.定位select,然后通过xpath定位
driver.find_element_by_xpath("//select[@id='select']").find_element_by_xpath("//option[@value='value1']").click()