国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

node.js|vue.js|jquery|angularjs|React|json|js教程|

香港云服务器
服務器之家 - 編程語言 - JavaScript - js教程 - Selenium執(zhí)行JavaScript腳本的方法示例

Selenium執(zhí)行JavaScript腳本的方法示例

2021-12-23 15:40測試開發(fā)小記 js教程

這篇文章主要介紹了Selenium執(zhí)行JavaScript腳本的方法示例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

JavaScript是運行在客戶端(瀏覽器)和服務器端的腳本語言,允許將靜態(tài)網頁轉換為交互式網頁。可以通過 Python Selenium WebDriver 執(zhí)行 JavaScript 語句,在Web頁面中進行js交互。那么js能做的事,Selenium應該大部分也能做。WebDriver是模擬終端用戶的交互,所以就不能點擊不可見的元素,有時可見元素也不能點擊。在這些情況下,我們就可以通過WebDriver 執(zhí)行JavaScript來點擊或者執(zhí)行頁面元素。本文將介紹如何使用 WebDriver執(zhí)行 JavaScript語句。

Web元素定位及操作

使用execute_script() 執(zhí)行 JavaScript 代碼,有兩種方法實現元素操作

方法1:文檔級別操作

直接使用JavaScript實現元素定位和動作執(zhí)行,主要方法有:

?
1
2
3
4
5
document.getElementById
document.getElementsByClassName
document.getElementsByName
document.getElementsByTagName
document.getElementsByTagNameNS

測試示例:

  • 打開百度一下
  • 輸入框輸入”test“
  • 點擊百度一下

python代碼:

?
1
2
3
4
5
6
def test_baidu(self):
  self.driver.get("http://www.baidu.com")
  self.driver.execute_script('document.getElementById("kw").value = "test"')
  time.sleep(2)
  self.driver.execute_script('document.getElementById("su").click()')
  time.sleep(2)

在執(zhí)行過程中,WebDriver 將 JavaScript 語句注入到瀏覽器中,然后腳本將執(zhí)行。這個注入 JavaScript 有自己的名稱空間,不會干擾實際網頁中的 JavaScript運行。

方法2:元素級別操作

可以先使用WebDriver獲取想要操作的元素,然后使用JavaScript執(zhí)行操作。

?
1
2
input_ele = driver.find_element_by_id("su")
driver.execute_script("arguments[0].click();", input_ele)

python代碼:

?
1
2
3
4
5
6
7
8
def test_baidu2(self):
  self.driver.get("http://www.baidu.com")
  input_ele = self.driver.find_element_by_id("kw")
  self.driver.execute_script("arguments[0].value = 'test';", input_ele)
  time.sleep(2)
  baidu_ele = self.driver.find_element_by_id("su")
  self.driver.execute_script("arguments[0].click();", baidu_ele)
  time.sleep(2)

可以在語句中使用多個 JavaScript動作:

?
1
2
3
username = driver.find_element_by_xpath("//*[@id='username']")
password = driver.find_element_by_xpath("//*[@id='password']")
driver.execute_script("arguments[0].value = 'admin';arguments[1].value = 'admin';", username, password)

獲取返回值

可以返回JavaScript的執(zhí)行結果:

?
1
2
driver.execute_script("return document.getElementById('kw').value")
driver.execute_script("return document.title;") # 返回網頁標題

滑動

在 Web自動化測試 | ActionChains、TouchAction 中介紹了TouchAction類中scroll_from_element()也可以滑動頁面。

滑動到瀏覽器底部

?
1
2
document.documentElement.scrollTop=10000
window.scrollTo(0, document.body.scrollHeight)

滑動到瀏覽器頂部

?
1
2
document.documentElement.scrollTop=0
window.scrollTo(document.body.scrollHeight,0)

更改元素屬性

大部分時間控件都是 readonly屬性,需要手動去選擇對應的時間。自動化測試中,可以使用JavaScript代碼取消readonly屬性。

測試頁面: https://www.12306.cn/index/

Selenium執(zhí)行JavaScript腳本的方法示例

測試步驟:

  • 打開測試頁面
  • 修改出發(fā)日期
  • 斷言日期是否修改成功

python測試代碼:

?
1
2
3
4
5
6
7
8
def test_datettime(self):
  self.driver.get("https://www.12306.cn/index/")
  # 取消readonly屬性
  self.driver.execute_script("dat=document.getElementById('train_date'); dat.removeAttribute('readonly')"
  self.driver.execute_script("document.getElementById('train_date').value='2020-10-01'")
  time.sleep(3)
  now_time = self.driver.execute_script("return document.getElementById('train_date').value")
  assert '2020-10-01' == now_time

總結

Selenium WebDriver 執(zhí)行 JavaScript代碼是一個非常強大的功能,可以實現WebElement 接口所有功能,甚至更多的功能。比如在web性能測試中可以調用Web API接口window.performance來測試Web性能。

到此這篇關于Selenium執(zhí)行JavaScript腳本的方法示例的文章就介紹到這了,更多相關Selenium執(zhí)行JavaScript腳本內容請搜索服務器之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持服務器之家!

原文鏈接:https://www.cnblogs.com/hiyong/p/14163246.html

延伸 · 閱讀

精彩推薦
  • js教程JavaScript實現滾動加載更多

    JavaScript實現滾動加載更多

    這篇文章主要為大家詳細介紹了JavaScript實現滾動加載更多,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下...

    予傾9872021-12-20
  • js教程js實現鼠標拖曳效果

    js實現鼠標拖曳效果

    這篇文章主要為大家詳細介紹了js實現鼠標拖曳效果,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下...

    等待的L先生8672021-12-22
  • js教程微信小程序視頻彈幕發(fā)送功能的實現

    微信小程序視頻彈幕發(fā)送功能的實現

    這篇文章主要介紹了微信小程序視頻彈幕發(fā)送功能的實現,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的...

    保護我方豆豆4782021-12-21
  • js教程JavaScript 防盜鏈的原理以及破解方法

    JavaScript 防盜鏈的原理以及破解方法

    這篇文章主要介紹了JavaScript 防盜鏈的原理以及破解方法,幫助大家更好的理解和使用JavaScript,感興趣的朋友可以了解下...

    LuckyChou10202021-12-22
  • js教程js實現移動端輪播圖滑動切換

    js實現移動端輪播圖滑動切換

    這篇文章主要為大家詳細介紹了js實現移動端輪播圖滑動切換,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下...

    浪漫前端11252021-12-15
  • js教程javascript的事件描述

    javascript的事件描述

    本文主要為大家介紹javascript事件的基礎知識,有需要的朋友可以參考下...

    js教程網9352021-12-15
  • js教程JavaScript實現瀑布流布局的3種方式

    JavaScript實現瀑布流布局的3種方式

    這篇文章主要為大家詳細介紹了JavaScript實現瀑布流布局的3種方式,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下...

    杏子_10247252021-12-20
  • js教程微信小程序實現可拖動懸浮圖標(包括按鈕角標的實現)

    微信小程序實現可拖動懸浮圖標(包括按鈕角標的實現)

    這篇文章主要介紹了微信小程序實現可拖動懸浮圖標(包括按鈕角標的實現),本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考...

    юноша7062021-12-21
729
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25 Weibo Article 26 Weibo Article 27 Weibo Article 28 Weibo Article 29 Weibo Article 30 Weibo Article 31 Weibo Article 32 Weibo Article 33 Weibo Article 34 Weibo Article 35 Weibo Article 36 Weibo Article 37 Weibo Article 38 Weibo Article 39 Weibo Article 40
主站蜘蛛池模板: 久久综合av| 欧美精品一区二区蜜臀亚洲 | 欧美 亚洲 一区 | 国产精品国产 | a国产视频 | 久久久久久久久久久动漫 | 免费看黄色一级电影 | 国产人妖在线 | xx视频在线观看 | 精品国产一区二区三区久久久蜜 | 日韩在线小视频 | 日韩精品久久 | 国产精品亚洲第一区在线暖暖韩国 | 天天干天天操 | 日韩成人在线播放 | 国产乱码精品1区2区3区 | 波多野结衣三区 | 最近最新mv字幕免费观看 | 成人免费视频在线观看 | 一区二区三区不卡视频 | 性色aⅴ免费视频 | 亚洲精品一区二区三区蜜桃下载 | 亚洲午夜久久 | 人人澡人人爽 | 激情婷婷 | 久久9999 | 性色av一区二区三区红粉影视 | 97成人在线 | 黄色电影在线免费观看 | 韩日电影 | 亚洲视频在线看 | 久久久av| 中文字幕在线一区二区三区 | 天天综合久久 | 北条麻妃一区二区三区中文字幕 | 欧美freesex黑人又粗又大 | 黑人精品欧美一区二区蜜桃 | 精品国产乱码久久久久久1区2区 | 国产一区不卡视频 | 欧美大逼| 免费成人高清 |