1.鼠標操作
由selenium的ActionChains類完成模擬鼠標操作
#鼠標操作 from selenium.webdriver.common.action_chains import ActionChains
支持的操作如下:
double_click:雙擊操作
context_click:右擊操作
drag_and_drop:拖拽操作。左鍵按住拖動某一個元素到另外一個區域,然后釋放按鍵
move_to_element():鼠標懸停(重點)
方法:AC.方法名1().context_click().perform()
注:當鼠標懸停后,下拉菜單出現。鼠標移動,下拉消失,此時定位下拉框中的元素時先鼠標定位到元素上按快捷鍵“ctrl+shift+c”
2.下拉框的操作
1)前端頁面由div標簽和a標簽等組成
2)前端頁面由select標簽組成:引入Select類
#select類操作 from selenium.webdriver.support.ui import Select
3.舉例(百度頁面的設置-高級搜索-文檔格式)
def web_mouse_operator(self): ''' 鼠標操作: 1.實例化鼠標類。將鼠標動作存儲起來,放在列表中 2.調用各種鼠標行為 3.調用perform()方法執行鼠標操作 下拉框操作(此處下拉框是采用div標簽和a標簽): 1.方法一:等待下拉框出現進行元素定位 2.方法二:可以通過元素下標進行定位操作,此方法用於下拉列表元素很少 下拉框操作(此處下拉框采用select/option標簽): 1.實例化類 2.根據select方法中的一種來選擇 :return: ''' #找到頁面元素 ele = self.driver.find_element_by_xpath('//div[@id="u1"]//a[text()="設置"]') #實例化鼠標對象 action = ActionChains(self.driver) #鼠標移動到該元素上,鼠標懸停,等待下拉框元素可見 action.move_to_element(ele).perform() #下拉框方法一: #等待下拉框出現 WebDriverWait(self.driver,10).until(EC.visibility_of_element_located((By.XPATH,'//a[text()="高級搜索"]'))) #下拉框方法二: #根據元素的下標進行獲取 WebDriverWait(self.driver,2).until(EC.visibility_of_element_located((By.XPATH,'//div[@class="bdpfmenu"]//a[2]'))) #點擊高級搜索按鈕 self.driver.find_element_by_xpath('//a[text()="高級搜索"]').click() time.sleep(10) #實例化select類 select = Select(self.driver.find_element_by_name("ft")) #根據下標進行選擇 select.select_by_index(2) time.sleep(3) #根據value值來進行選擇 select.select_by_value("xls") time.sleep(3) #根據文本內容來選擇 select.select_by_visible_text("微軟 Powerpoint (.ppt)") time.sleep(3)
