一、JavaScript操作頁(yè)面元素
WebDriver對(duì)于部分瀏覽器上的控件并不是直接支持的帆锋,比如瀏覽器右側(cè)、下側(cè)滾動(dòng)條禽额,顯示框等锯厢。此時(shí)需要借助JavaScript來(lái)實(shí)現(xiàn)
Webdriver提供了兩個(gè)方法來(lái)執(zhí)行JavaScript代碼
webdriver方法名 | 描述 |
---|---|
execute_script | 同步執(zhí)行,時(shí)間較短脯倒。webdriver會(huì)等待同步執(zhí)行結(jié)果实辑,然后繼續(xù)執(zhí)行后續(xù)代碼 |
execute_async_script | 異步執(zhí)行,時(shí)間較長(zhǎng)藻丢。webdriver不會(huì)等待異步執(zhí)行結(jié)果剪撬,但是會(huì)繼續(xù)執(zhí)行后續(xù)代碼 |
js方法名 | 描述 |
- | - |
window.scrollTo(100,600) | 使?jié)L動(dòng)條滑動(dòng)到指定位置 |
window.scrollTo(0,document.body.scrollheight) | 使?jié)L動(dòng)條滑動(dòng)至頁(yè)面底部 |
from selenium import webdriver
# 初始化webdriver,并打開馬蜂窩首頁(yè)
driver=webdriver.Chrome()
driver.maximize_window()
driver.get("https://www.mafengwo.cn")
#通過id找到馬蜂窩首頁(yè)搜索框,輸入北京
inputJs = 'document.getElementById("_j_index_search_input_all").value="北京"'
#javascript代碼
driver.execute_script(inputJs)
# 讓下拉框滑動(dòng)到指定位置
windowJs = "window.scrollTo(100,600)"
#使?jié)L動(dòng)條滑動(dòng)到底部
# windowJs = "window.scrollTo(0,document.body.scrollheight)"
driver.execute_script(windowJs)
二悠反、jQuery操作頁(yè)面元素
jQuery是JavaScript到一個(gè)類庫(kù)残黑,是在JavaScript基礎(chǔ)上的深度封裝馍佑。使用更加簡(jiǎn)單。
jQuery選擇器參考:https://www.runoob.com/jquery/jquery-selectors.html
from selenium import webdriver
driver = webdriver.Chrome();
driver.maximize_window()
driver.get("https://www.mafengwo.cn")
inputJQ = "$('#_j_index_search_input_all').val('北京')"
driver.execute_script(inputJQ)
clickJQ = "$('#_j_index_search_btn_all').click()"
driver.execute_script(clickJQ)
driver.quit()
Selenium 3+Python 3 自動(dòng)化測(cè)試項(xiàng)目實(shí)戰(zhàn) 從菜鳥到高手 田春成 李靖 /著