web自動化08-下拉選擇框、彈出框、滾動條
阿新 • • 發佈:2022-03-22
1、下拉選擇框操作
下拉框就是HTML中<select>元素; 先列需求:需求:使用‘註冊A.html’頁面,完成對城市的下拉框的操作 1).選擇‘廣州’ 2).暫停2秒,選擇‘上海’ 3).暫停2秒,選擇‘北京’我們先來認識select類: 說明:Select類是Selenium為操作select標籤特殊封裝的。 例項化物件: select = Select(element) element: <select>標籤對應的元素,通過元素定位方式獲取, 例如:driver.find_element_by_id("selectA") 常用可以用什麼定位呢?
- select_by_index(index) --> 根據option索引來定位,從0開始
- select_by_value(value) --> 根據option屬性 value值來定位
- select_by_visible_text(text) --> 根據option顯示文字來定位
fromselenium.webdriver.support.select import Select select = Select(driver.find_element_by_id("selectA")) select.select_by_index(2) # 根據索引實現 select.select_by_value("sh") # 根據value屬性實現 select.select_by_visible_text("A北京") # 根據文字內容實現
2、彈出框處理
網頁中常用的彈出框有三種: 1. alert 警告框 2. confirm 確認框 3. prompt 提示框 先列需求:需求:開啟註冊A.html頁面,完成以下操作:說明:Selenium中對處理彈出框的操作,有專用的處理方法;並且處理的方法都一樣 1. 獲取彈出框物件 alert = driver.switch_to.alert 2. 呼叫 alert.text --> 返回alert/confirm/prompt中的文字資訊 alert.accept() --> 接受對話方塊選項 alert.dismiss() --> 取消對話方塊選項 我們來做一下上面需求:大家可以做一下1).點選 alert 按鈕 2).關閉警告框 3).輸入使用者名稱:admin
3、滾動條操作
為什麼需要滾動條呢?
1. 在HTML頁面中,由於前端技術框架的原因,頁面元素為動態顯示,元素根據滾動條的下拉而被載入 2. 頁面註冊同意條款,需要滾動條到最底層,才能點選同意先提需求:開啟註冊頁面A,暫停2秒後,滾動條拉到最底層說明:selenium中並沒有直接提供操作滾動條的方法,但是它提供了可執行JavaScript指令碼的方法,所以我們可以通過JavaScript指令碼來達到操作滾動條的目的。 1. 設定JavaScript指令碼控制滾動條 js = "window.scrollTo(0,1000)" (0:左邊距;1000:上邊距;單位畫素) 2. selenium呼叫執行JavaScript指令碼的方法 driver.execute_script(js) 我們來做一下上邊需求:
# 最底層 js1 = "window.scrollTo(0,10000)" driver.execute_script(js1) # 最頂層 js2 = "window.scrollTo(0,0)" driver.execute_script(js2)