若要對頁面中的提示警告視窗中的滾動條進行操作,要先找到元件位置,然後在進行滾動條操作
element =driver.find_elements_by_class_name('dg-button')element.location_once_scrolled_into_view
或element =driver.find_elements_by_class_name('dg-button')
driver.execute_script("return arguments[0].scrollintoview();", element )設定瀏覽器的大小
把checkbox核取方塊全部選擇:
find_elements_by_tag_name()定位,需要判斷是否是checkbox
from selenium import webdriver
import time
driver = webdriver.firefox()
driver.get(r"")
#選擇頁面上所有tag_name是input的元素
inputs = driver.find_elements_by_tag_name("input")
#然後過濾出type為checkbox的元素
for i in inputs: #用tag_name定位需要判斷是否是checkbox,如下:
if i.get_attribute("type") == "checkbox":
i.click()
time.sleep(1)
inputs.pop().click()
inputs.pop().click(2)
通過find_elements_by_xpath()和find_elements_by_css_selector()直接定位到checkbox:
不需要判斷了,選擇所有的核取方塊後取消第二個和最後乙個:
from selenium import webdriver
from time import sleep
driver = webdriver.firefox()
driver.get(r"")
driver.set_window_size(1000,1000)
#通過css定位
checkboxs = driver.find_elements_by_css_selector("[type='checkbox']")
#通過xpath定位
inputs = driver.find_elements_by_xpath("//*[@type='checkbox']")
#通過以上兩種方式定位就不需要判斷定位的標籤是否是核取方塊的了
for i in checkboxs:
i.click()
sleep(1)
#列印當前頁面上input="checkbox" 的個數
print(len(inputs))
#把頁面上第二個checkbox取到勾選
inputs.pop(1).click()
sleep(2)
driver.find_elements_by_xpath("//*[@type='checkbox']").pop(-1).click()
#前面已經把所有checkbox勾上了,通過pop().click()對某個checkbox再勾選,即是取消勾選。
len()方法可以計算定位到的元素個數;
pop()方法獲取列表中某個元素,pop().click()定位到某個checkbox後取消勾選;
pop()\pop(-1)都表示最後乙個checkbox;
pop(0)第乙個checkbox;
多表單切換
webdriver只能在乙個頁面上定位和識別元素,對於iframe或frame不能直接定位。
通過switch_to.frame()方法將當前的主體切換為frame或iframe表單的內嵌頁面中。
myframe.html
請上傳乙個檔案:
例項:通過input標籤實現上傳功能的可以通過send_keys("檔案位址")上傳
from selenium import webdriver
driver = webdriver.firefox()
driver.get(r"")
#通過send_keys()上傳
driver.find_element_by_css_selector("[type='file']").send_keys("c:\\users\\administrator\\desktop\\html5.txt")
Python selenium實戰案例之登入
步驟一 獲取登入頁面元素 from selenium.webdriver.common.by import by class loginpage username by.id,username password by.id,password button login by.id,button log...
Python selenium 之奇怪問題總結
問題1 time elapsed 0 00 04.464552 有時經常瞬間就執行完了程式,但實際上乙個case都沒執行,經過反覆實驗得知,是pattern原因 discover unittest.defaulttestloader.discover test case dir,pattern sp...
python selenium之測試報告
測試報告是selenuim整合unitest,htmltestrunner 生成測試報告 bstestrunner 美化測試報告 htmltestrunner bstestrunner.py檔案放的路徑是python安裝目錄bin目錄下 htmltestrunner.py和bstestrunner....