Selenium4自動化測試6--控制元件獲取資料--下拉框級聯選擇、checkbox選擇、時間選擇器

万笑佛發表於2024-05-15

系列導航

一、Selenium4自動化測試1--Chrome瀏覽器和chromedriver

二、Selenium4自動化測試2--元素定位By.ID,By.CLASS_NAME,By.TAG_NAME

三、Selenium4自動化測試3--元素定位By.NAME,By.LINK_TEXT 和透過連結部分文字定位,By.PARTIAL_LINK_TEXT,css_selector定位,By.CSS_SELECTOR

四、jSelenium4自動化測試4--元素定位By.XPATH,元素定位最佳順序

五、Selenium4自動化測試5--控制元件獲取資料--ALERT彈窗、Confirm彈窗、Prompt彈窗

六、Selenium4自動化測試6--控制元件獲取資料--下拉框級聯選擇、checkbox選擇、時間選擇器

七、Selenium4自動化測試7--控制元件獲取資料--radio單選框、select下拉框選擇、iframe

八、Selenium4自動化測試8--控制元件獲取資料--上傳、下載、https和切換分頁

4-下拉框級聯選擇

import time
from selenium.webdriver.support.select import Select
#pip install selenium
from selenium import webdriver
from selenium.webdriver.common.by import By

# 定義一個driver的變數,用來接收例項化後的瀏覽器
# 指定瀏覽器的位置,解決瀏覽器驅動和瀏覽器版本不匹配的問題
chrome_location = r'D:\pythonProject2023\SeleniumFirst\chrome-win64\chrome.exe'
options = webdriver.ChromeOptions()
options.binary_location = chrome_location
driver = webdriver.Chrome(options=options)
# 使用get方法,訪問網址
driver.get("https://www.iviewui.com/view-ui-plus/component/form/cascader")
driver.find_element(By.XPATH,'//input[@class="ivu-input ivu-input-default"]').click()
driver.find_element(By.XPATH,'//li[contains(text(),"北京")]').click()
driver.find_element(By.XPATH,'//li[contains(text(),"王府井")]').click()
time.sleep(3)
driver.quit()

5-checkbox選擇

import time

#pip install selenium
from selenium import webdriver
from selenium.webdriver.common.by import By
# 定義一個driver的變數,用來接收例項化後的瀏覽器
# 指定瀏覽器的位置,解決瀏覽器驅動和瀏覽器版本不匹配的問題
chrome_location = r'D:\pythonProject2023\SeleniumFirst\chrome-win64\chrome.exe'
options = webdriver.ChromeOptions()
options.binary_location = chrome_location
driver = webdriver.Chrome(options=options)
# 使用get方法,訪問網址
driver.get('https://www.iviewui.com/view-ui-plus/component/form/checkbox')
#視窗最大化
driver.maximize_window()
driver.find_element(By.XPATH,'//span[text()="香蕉"]').click()
time.sleep(3)
driver.find_element(By.XPATH,'//span[text()="蘋果"]').click()
time.sleep(3)
driver.find_element(By.XPATH,'//span[text()="西瓜"]').click()
time.sleep(3)

#同級哥哥寫法
# driver.find_element(By.XPATH,'//span[text()="香蕉"]/preceding-sibling::span/input').click()
# time.sleep(3)
# driver.find_element(By.XPATH,'//span[text()="蘋果"]/preceding-sibling::span/input').click()
# time.sleep(3)
# driver.find_element(By.XPATH,'//span[text()="西瓜"]/preceding-sibling::span/input').click()
# time.sleep(3)


time.sleep(3)
driver.quit()

6-時間選擇器

import time
from selenium.webdriver.support.select import Select
#pip install selenium
from selenium import webdriver
from selenium.webdriver.common.by import By

# 定義一個driver的變數,用來接收例項化後的瀏覽器
# 指定瀏覽器的位置,解決瀏覽器驅動和瀏覽器版本不匹配的問題
chrome_location = r'D:\pythonProject2023\SeleniumFirst\chrome-win64\chrome.exe'
options = webdriver.ChromeOptions()
options.binary_location = chrome_location
driver = webdriver.Chrome(options=options)
# 使用get方法,訪問網址
driver.get("https://www.iviewui.com/view-ui-plus/component/form/date-picker")
driver.find_element(By.XPATH,'//input[@class="ivu-input ivu-input-default ivu-input-with-suffix"]').send_keys("2023-11-21")
driver.find_elements(By.XPATH,'//input[@class="ivu-input ivu-input-default ivu-input-with-suffix"]')[1].send_keys("2023-11-10 2023-11-21")
time.sleep(3)
driver.quit()

時間選擇器這裡特別說明一下,有的時間選擇器直接賦值不行,空間是readonly這時就要用js修改控制元件的屬性,不讓他readonly 如下:

#執行js 去掉日期控制元件的readonly
btime = '//*[@id="btime"]'
js_b = "document.getElementById('btime').removeAttribute('readonly')"
driver.execute_script(js_b)

相關文章