自動化測試——下拉選擇框、警告框、滾動條操作
一、下拉選擇框
1、什麼是下拉選擇框
說明:下拉框就是HTML中<select>元素
2、為什麼學習下拉選擇框?
(1)傳統程式碼實現:
定位option選項(8中定位方式)
(2)問題:
1、傳統定位根據option選項的值來判斷
2、如果有多個選項傳統定位方式處理起來比較繁瑣
3、Select類
說明:Select類是WebDriver為解決select標籤定位誕生的,此類定位的是select標籤
(1)select方法
select_by_index() 根據option索引來定位,從0開始
select_by_value() 根據option屬性 value值來定位
select_by_visible_text() 根據option顯示文字來定位
(2)select實現程式碼
from selenium import webdriver from time import sleep from selenium.webdriver.support.select import Select driver = webdriver.Firefox() driver.get(r'G:\python\day1\source\註冊A.html') sleep(2) select = Select(driver.find_element_by_id("selectA")) #根據索引實現 sleep(2) select.select_by_index(1) #根據文字值實現 sleep(2) select.select_by_value('bj') #根據value屬性實現 sleep(2) select.select_by_visible_text('A重慶') sleep(3) driver.quit()
二、警告框處理
說明:WebDriver中對處理警告框的操作,有專門的處理方法
提示:HTML中常用的對話方塊有三種,處理的方法都一樣
(1)alert
(2)confirm
(3)prompt
1、警告框處理方法
(1)text 返回alert/confirm/prompt中的文字資訊
(2)accept() 接受對話方塊選項
(3)dismiss() 取消對話方塊選項
2、呼叫方法
(1)獲取警告框 alert = driver.switch_to.alert
(2)呼叫 :
alert.text
alert.accept()
alert.dismiss()
3、處理警告框
from selenium import webdriver
from time import sleep
driver = webdriver.Firefox()
driver.get(r'G:\python\day1\source\註冊A.html')
sleep(2)
driver.find_element_by_id('alerta').click()
sleep(2)
alert = driver.switch_to.alert
print(alert.text)
alert.accept()
sleep(2)
driver.find_element_by_id('userA').send_keys('admin')
sleep(3)
driver.quit()
三、滾動條操作
說明:WebDriver類庫中並沒有直接提供對滾動條進行操作方法,但是它提供了可呼叫JavaScript指令碼的方法,所以我們可以通過JavaScript指令碼來達到操作滾動條的目的
備註:(1)滾動條:一種可控制程式顯示範圍的元件
(2)JavaScript:一種流行指令碼語言,可以操作HTML標籤
1、為什麼要學習滾動條操作?
(1)在HTML頁面中,由於前端技術框架的原因,頁面元素為動態顯示,元素根據滾動條的下拉而被載入
(2)頁面註冊同意條款,需要滾動條到最底層,才能點選同意
2、設定JavaScript指令碼控制滾動條
js = “window.scrollTo(0,1000)”
(0:左邊距;1000:上邊距,單位畫素)
WebDriver呼叫js指令碼方法: driver.execute_script(js)
3、處理滾動條
from selenium import webdriver
from time import sleep
driver = webdriver.Firefox()
driver.get(r'G:\python\day1\source\註冊A.html')
sleep(2)
js1 = "window.scrollTo(0,1000)"
js2 = "window.scrollTo(0,0)"
driver.execute_script(js1)
sleep(2)
driver.execute_script(js2)
sleep(3)
driver.quit()
4、滾動條總結
(1)WebDriver控制滾動方法
(2)JavaScript控制滾動條語句