Python+webdriver下拉菜單及鼠標懸浮菜單定位


(1)定位<select>標簽的下拉菜單

通過代碼定位,首先導入Select模塊:

from selenium.webdriver.support.select import Select

Select提供了三種方法:

1 select_by_index          # 通過索引定位
2 select_by_value          # 通過value值定位
3 select_by_visible_text   # 通過文本值定位

#通過index進行選擇
Select(driver.find_element_by_id("aoe")).select_by_index("1")
#通過value進行選擇
#Select(driver.find_element_by_id("aoe")).select_by_value("20")
#通過選項文字進行選擇
#Select(driver.find_element_by_id("aoe")).select_by_visible_text("通用卡")

注意事項:

index索引是從“0”開始;

value是option標簽的一個屬性值,並不是顯示在下拉框中的值;

visible_text是在option標簽中間的值,是顯示在下拉框的值;

Select only works on <select> elements(Select只對<select>標簽的下拉菜單有效)

(2)定位非<select>標簽的下拉菜單

定位非<select>標簽下的選項,采用二次定位的方法:即需要先定位到下拉框,再定位選項

driver.find_element_by_id("aoe").find_element_by_name("swk").click()

注意:也可用此二次定位方法來定位<select>標簽下的選項

 

#-*-coding:utf-8-*-
from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.support.select import Select
import time
driver = webdriver.Chrome()
driver.get('http://www.baidu.com')
driver.maximize_window()
#懸浮菜單定位 menu
= driver.find_element_by_link_text('設置') ActionChains(driver).move_to_element(menu).perform() driver.find_element_by_link_text('搜索設置').click() time.sleep(3)
#Select定位下拉菜單(必須是select標簽) Select(driver.find_element_by_id(
'nr')).select_by_visible_text('每頁顯示20條') time.sleep(3)
#二次定位定位下拉菜單 driver.find_element_by_id(
'nr').find_element_by_css_selector("option[value='50']").click() time.sleep(3) driver.quit()

 

 

 

(3)鼠標懸浮菜單定位

引入ActionChains模塊 

from selenium.webdriver.common.action_chains import ActionChains

driver = webdriver.Chrome()

先定位到頂級菜單

menu = drvier.find_element_by_link_text('aoe')

再將鼠標移到懸浮菜單上

ActionChains(driver).move_to_element(menu).perform()

再定位到相應的元素並點擊

driver.find_element_by_id('mlgb').click()

舉例如下:

打開百度---設置---搜索設置(鼠標懸浮菜單定位)----單選框定位----單選框定位----select下拉菜單定位---select下拉菜單定位---單選框定位---alert彈出框定位

 1 #-*-coding:utf-8-*-
 2 from selenium import webdriver  3 import time  4 from selenium.webdriver.common.action_chains import ActionChains#引入函數模塊
 5 from selenium.webdriver.support.select import Select#引入函數模塊
 6 swk = webdriver.Chrome()  7 swk.maximize_window()  8 swk.get("https://www.baidu.com")  9 zbj = swk.find_element_by_link_text('設置')#先定位到頂級菜單
10 ActionChains(swk).move_to_element(zbj).perform()#再將鼠標移動到菜單上面
11 swk.find_element_by_link_text('搜索設置').click()#最后定位菜單元素並點擊
12 time.sleep(3) 13 swk.find_element_by_id("s1_2").click()#單選框定位
14 swk.find_element_by_id('SL_1').click()#單選框定位
15 Select(swk.find_element_by_id('nr')).select_by_value("20")#select下拉菜單定位
16 Select(swk.find_element_by_id('issw1')).select_by_value('2')#select下拉菜單單定位
17 swk.find_element_by_id('sh_1').click() 18 swk.find_element_by_link_text('保存設置').click() 19 swk.switch_to.alert.accept()#alert彈出框"確認"

舉例如下:

打開百度---更多產品---音樂(懸浮下拉菜單定位)

 1 #-*-coding:utf-8-*-
 2 from selenium import webdriver  3 import time  4 from selenium.webdriver.common.action_chains import ActionChains  5 driver = webdriver.Chrome()  6 driver.maximize_window()  7 driver.get("https://www.baidu.com")  8 element = driver.find_element_by_link_text('更多產品')  9 ActionChains(driver).move_to_element(element).perform() 10 driver.find_element_by_link_text('音樂').click() 11 time.sleep(3) 12 driver.quit()


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM