selenium自動化測試基礎元素定位
點選連結查詢相關視訊教程
.get("XXX") 開啟網頁
.maximize_window() 最大化開啟
.set_window_size(10,20) 設定開啟尺寸
.refresh() 重新整理
.back() 返回
.forward() 下一頁
.find_element_by_id("").send_keys("") 根據ID名查詢
.find_element_by_name("").send_keys("") 根據name查詢
.find_element_by_id("").click() 根據ID點選按鈕
.find_element_by_tag_name("標籤").send_keys("") 根據標籤查詢
.find_elements_by_tag_name("標籤")[0].send_keys("") 根據標籤陣列查詢
.find_elements_by_link_text("超連結名稱").click() 根據具體超連結名稱點選
.find_elements_by_parrial_link_text("不具體超連結名稱").click() 根據不具體超連結名稱點選
.find_elements_by_xpath("/html/baby/div[1]/div/ul").send_keys("") xpath絕對定位
.find_elements_by_xpath("//input[@id=""]").send_keys("") 利用元素定位
下拉框
.find_element_by_tag_name('option')[1].click() 根據option下標點選
.find_element_by_css_selector('[value="2"]').click() 根據value點選
form selenium.webdriver.support.ui import select
select = Select(driver.find_element_by_css_selector("[name='XXX']"))
select.select_by_index(2) 根據下標
select.select_by_visible_text("XXX") 根據文字內容
select.select_by_value("1") 根據value
滑鼠操作
from selenium.webdriver.common.action_chains import ActionChains
driver.find_element_by_css_selector("#kw").send_keys("") 輸入
獲取搜尋框元素物件
element =driver.find_element_by_css_selector("#kw")
雙擊操作
ActionChains(driver).double_click(element).perform()
右擊操作
ActionChains(driver).context_click(element).perform()
滑鼠懸停
above=driver.find_element_by_css_selector(".pf")
ActionChains(driver).move_to_element(above).perform()
鍵盤操作
from selenium.webdriver.common.keys import keys
鍵盤全選
.find_element_by_css_selector("#kw").send_keys(keys.CONTROL,''a")
鍵盤操作複製或剪下
.find_element_by_css_selector("#kw").send_keys(keys.CONTROL,''c")
.find_element_by_css_selector("#kw").send_keys(keys.CONTROL,''x")
貼上複製內容
.find_element_by_css_selector("#kw").send_keys(keys.CONTROL,''v")
元素等待
顯示等待是針對某一個元素進行相關等待判定
隱式等待不針對某一個元素進行等待,全域性元素等待
引用
WebDriverWait 顯示等待針對元素必用
from selenium.webdriver.support.ui import WebDriverWait
expected_conditions 預期條件類 (裡面包含方法可以呼叫,用於顯示等待)
from selenium.webdriver.support import expected_conditions as EC
By 用於元素定位
from selenium.webdriver.common.by import by
element=WebDriverWait(driver,最長等待時間,每隔多久去檢測一次).until(Ec.presence_of_element_located(By.ID,"su")))
element.click()
NoSuchElementException 用於隱式等待丟擲異常
from selenium.common.exceptions import NoSuchElementException
.implicitly_wait(5) 隱式等待時間設定5秒
try:
print(ctime())
.find_element_by_css_selector("#kw").send_kets("XXX")
.find_element_by_css_selector("#su").click()
except NoSuchElementException as msg
print(msg)
finally:
print(ctime())
frame巢狀頁面元素定位
.switch_to.frame(0) 用frame的index來定位,第一個是0
.switch_to.frame("frame1") 用id來定位
.switch_to.frame("myframe")用name來定位