在自動化測試中經常會遇到使用selenium方法定位元素點擊操作失敗的情況,例如,我們想實現在瀏覽器輸入http://www.baidu.com,進入百度首頁后,鼠標懸停在“更多產品”上,點擊“全部產品”
若不使用js的話,代碼應該如下圖所示:
我們執行代碼后,發現會報錯
我們該如何解決這個問題呢,那就要用到這篇文章的主角js了,將代碼修改為如下內容,執行代碼,發現頁面正常跳轉了
我們在編寫自動化測試用例的過程中,有時會遇到某個元素的長寬設置的比較大,將我們想要點擊的元素遮擋住了,該怎么辦?我們可以使用js的方法,先將遮擋我們的元素去掉,這里舉個例子,我們利用js去掉百度的搜索按鈕,執行以下代碼
執行代碼后,我們發現百度搜索按鈕消失了
想看看js的效果的話,我們可以直接在瀏覽器按一下F12的按鍵,鼠標點擊Console或者控制台
打開百度首頁,按F12后,在控制台輸入document.getElementById("kw").value="你喊",之后輸入回車后,看一下效果吧
JS的使用方法:
一、查找元素:
1、根據元素的id查找元素:document.getElementById(元素id值)
2、根據元素的class屬性查找元素:document.getElementsByClassName(元素class值)
3、根據元素的TagName屬性查找元素:document.getElementsByTagName(標簽名)
4、根據css屬性查找元素:①查找一個元素:document.querySelector(css表達式)
②查找多個元素:document.querySelectorAll(css表達式)
二、獲取元素屬性:
1、document.getElementByXXX("").屬性名
2、document.getElementByXXX("").getAttribute(屬性名)
三、修改元素屬性
1、document.getElementByXXX("").屬性名=屬性值
2、document.getElementByXXX("").setAttribute(屬性名,屬性值)
四、獲取元素內容
1)獲取的內容包含html標簽:
document.getElementByXXX(" ").innerHTML
2)獲取的內容不包含html標簽,純文本:
document.getElementByXXX(" ").innerText
五、修改元素內容:
1)獲取的內容包含html標簽:
document.getElementByXXX(" ").innerHTML=new HTML
2)獲取的內容不包含html標簽,純文本:
document.getElementByXXX(" ").innerText = 文本文字
六、修改樣式:
document.getElementByXXX(" ").style.樣式名=樣式值
例如:元素的可見性:document.getElementByXXX(" ").style.visibility='hidden'
元素的顏色:document.getElementByXXX(" ").style.color='blue'