有時候定位元素我們會遇到一種常見的下拉框。這里沒找到啥好網站,就以臭名昭著的58同城為例。下拉框長下圖這樣:
有圖可見只要我們點擊省份就會,出現很多選項。下面說下這種下拉框怎么處理
首先先要點擊省份,然后才會出現下拉框選項。driver.find_element_by_xpath('//div[text()="省份"]').click()。然后就是對下拉框選項的定位,
tags = driver.find_elements_by_xpath('//ul[@class="selector-box"]/li'),這里用的elements復數定位會返回一個列表,里面存儲的就是下拉框選項的值。
我們要進行定位的話,第一種方式,可以根據下標定位返回列表的值,tags[1].click(),這里[1]就是選的福建。
第二種方式,先for循環利用里面的文本定位。
for tag in tags:
if tag.text=='海南':
tag.click()
代碼如下:
from selenium import webdriver from time import sleep driver = webdriver.Chrome() driver.get('https://hz.58.com/?utm_source=market&spm=u-2d2yxv86y3v43nkddh1.BDPCPZ_BT') driver.maximize_window() driver.implicitly_wait(1) driver.find_element_by_xpath('//a[text()="切換城市"]').click() driver.find_element_by_xpath('//div[text()="省份"]').click() tags = driver.find_elements_by_xpath('//ul[@class="selector-box"]/li') # todo 第一種方式 tags[1].click() # todo 第二種方式 for tag in tags: if tag.text=='海南': tag.click() # for tag in tags: # if tag.get_attribute('data-city')=='G': # tag.click()
alert彈出窗操作: