系列導航
一、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)