日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 前端技术 > CSS >内容正文

CSS

Selenium自动化中DOM,XPATH,CSS定位Web页面对象的优劣性分析

發(fā)布時間:2025/3/20 CSS 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Selenium自动化中DOM,XPATH,CSS定位Web页面对象的优劣性分析 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

加速IE瀏覽器自動化執(zhí)行效率:Selenium自動化中DOM,XPATH,CSS定位Web頁面對象的優(yōu)劣性分析

1.技術(shù)背景 ????? 在Web應(yīng)用中,用戶通過鍵盤在輸入框中輸入值和鼠標(biāo)點擊按鈕,鏈接等。比如在用戶名輸入框和密碼輸入框輸入正確的用戶名和密碼,然后點擊登錄按鈕進(jìn)行登錄。在Selenium自動化中,Selenium提供多種API來對HTML元素進(jìn)行操作,對于每個HTML元素,需要一個可以標(biāo)識它的標(biāo)識符,在Selenium中稱之為定位器,Selenium支持多種不同類型的定位器,有標(biāo)識符,Id,Name, DOM Locator,XPath Locator, 以及CSS Locator等。本文主要討論DOM, XPATH,以及CSS定位器在不同的瀏覽器中的使用的優(yōu)缺點以及注意事項。

?

2.問題與挑戰(zhàn) ????? 針對一個使用Selenium RC的Web自動化項目,在項目初期在Firefox上采用了比較靈活,簡潔的XPath定位器來對應(yīng)用中的對象進(jìn)行操作。但在項目開展到1/3時,增加了對IE瀏覽器支持的需求。在使用現(xiàn)有基于XPath的腳本運行后,發(fā)現(xiàn)腳本運行時間呈現(xiàn)幾十上百倍地增加,在Firefox上執(zhí)行花費1分鐘的腳本在IE上會花費10~20分鐘,甚至更長的時間。該問題就導(dǎo)致了在IE上直接運行之前已完成腳本變得不可行。要了解到Firefox支持原生的Xpath解析功能,而IE不支持原生的Xpath解析,而是基于一個外部的javascript library(Google's library)來進(jìn)行Xpath解析。由于需求是要求腳本能夠同時支持Firefox和IE瀏覽器,所以需要尋求另外一種方式來使得在不同瀏覽器上調(diào)用Selenium API所執(zhí)行時間相當(dāng)。

?

3.解決方案 ????? 在Selenium RC 0.9.2中,用以解析XPath的javascript庫在IE上執(zhí)行的時間增加了腳本執(zhí)行時間,而且在越復(fù)雜的頁面中,在IE上調(diào)用API所占用的時間越長。于是決定換用其它類型的定位器,由于該被測Web應(yīng)用中大多數(shù)HTML元素未指定有ID和Name屬性,所以在這里首先采用比較靈活的Dom定位器進(jìn)行測試。

使用Dom定位器來對HTML元素定位,該Locator表達(dá)式需要以“dom=” 或者是“document.”開頭的形式,Selenium會執(zhí)行這段javascript片斷來最終地取得我們需要訪問的HTML元素,由此在Dom定位器中,可以使用Web頁面中的DOM對象來獲取文檔內(nèi)的所有HTML元素。 需要注意一點的是,Selenium執(zhí)行這段javascript片斷的時候,是采用整段javascript腳本執(zhí)行的值,也即是在這段javascript片斷中最后一個表達(dá)式的值。

使用Dom定位器后,在IE上腳本執(zhí)行的時間比使用Xpath的時候短很多,基本上跟在Firefox上面所花費的時候基本相當(dāng)。

?

?

?

?

轉(zhuǎn)載于:https://www.cnblogs.com/qmfsun/p/4704015.html

總結(jié)

以上是生活随笔為你收集整理的Selenium自动化中DOM,XPATH,CSS定位Web页面对象的优劣性分析的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。