1. 程式人生 > >selenium + python自動化測試unittest框架學習(三)webdriver對頁面其他控件操作(三)

selenium + python自動化測試unittest框架學習(三)webdriver對頁面其他控件操作(三)

文件的 文件路徑 內容 option selenium script web 對話 對話框

1.對話框,下拉框

(1)對話框的有兩種,一種是iframe格式的,需要switch_to_iframe()進行定位,現在大部分的對話框是div格式的,這種格式的可以通過層級定位來定位元素,先定位對話框的div,然後再對對話框的元素進行定位。

(2)另外的彈出消息提示框有三種類型:alert,comfirm,prompt,三種類型的區別為;

alert消息提示框僅提供“確定”按鈕,用於警告等提示,comfirm提示框提供“是”和“否”的選擇,prompt則是提示輸入對話框,包含提示信息,輸入文本框以及“確定”和“取消”按鈕

這幾種消息提示框一般都是調用javascript來顯示的,所以如何定位這些對話框裏的元素?

使用switch_to_alert定位彈出框,對於彈出框的主要操作有;

text:獲取文本值

accept() :點擊"確認"

dismiss() :點擊"取消"或者叉掉對話框

send_keys() :輸入文本值 ,該操作對於有輸入文本框的prompt有效

alert = driver.switch_to_alert()               #定位到彈出框
print(alert.text)                              #獲取彈出框提示信息
alert.send_keys("my name is xiaoming")         #對於prompt的彈出框,在文本框中輸入內容
alert.accept()                                 #點擊確定,或者alert.dismiss(),點擊取消

下拉框定位:

(1)下拉列表<select>標簽的,可以使用Select(driver.find_element_by_xxx(select元素定位)).select_by_xxx(列表項定位)來定位

<select name="s1">
      <option value="1" title="option1" >1</option>
      <option value="2" title="option2" >2</option>
      <option value="3" title="option3"
>3</option> <option value="4" title="option4" >4</option> <option value="5" title="option5" >5</option> <option value="6" title="option6" >6</option> <option value="7" title="option7" >7</option> <option value="8" title="option8" >8</option> <option value="9" title="option9" >9</option> <option value="10" title="option10" >10</option> </select>

定位某一列的方式有以下方式,例如定位列表項1

select_by_value(),Select(driver.find_element_by_name("s1")).select_by_value("1")

select_by_index(),Select(driver.find_element_by_name("s1")).select_by_index(1)

select_by_visible_text() # 通過選項文字進行選擇,Select(driver.find_element_by_name("s1")).select_by_visible_tex("1")

(2)下拉列表不是select標簽,而是ul>li,則可以通過xpath或者css來定位列表項,先定位下拉菜單ul,再定位具體的列表項li。例如定位列表項的最後一項

<ul name="u1">
      <li value="1" title="1" >1</lin>
      <li value="2" title="2" >2</lin>
      <li value="3" title="3" >3</lin>
      <li value="4" title="4" >4</lin>
      <li value="5" title="5" >5</lin>
</ul>

定位最後一項的xpath定位方式:/ul/li[last()] 選取屬於ul 子元素li的最後一個 book 元素。

driver.find_element_by_xpath("/ul/li[last()]")

3.上傳

上傳文件:定位上傳文件的文本框類似輸入文本框內容將文件的絕對路徑輸入send_keys("文件路徑")

send_keys("文件路徑")

selenium + python自動化測試unittest框架學習(三)webdriver對頁面其他控件操作(三)