亚欧色一区w666天堂,色情一区二区三区免费看,少妇特黄A片一区二区三区,亚洲人成网站999久久久综合,国产av熟女一区二区三区

  • 發布文章
  • 消息中心
點贊
收藏
評論
分享
原創

JS操作元素與元素判斷方法

2024-12-12 09:10:58
20
0

一、js操作元素
① js操作瀏覽器滾動條
js
"window.scrollTo(0,document.body.scrollHeigh t);" 
driver.execute_script(js)
2)滾動到頂部
js = "window.scrollTo(0,0);"
driver.execute_script(js)
3) 滾動到元素出現的位置(聚焦元素)
target = driver.find _element(By.id, "xxx))
js = "arguments[0].scrollintoView();"
driver.execute_script(js, target)
② js獲取元素的幾種方法
1) 通過id獲取(獲取到的是單個元素)
document.getElementByld('xxx')
2)通過name獲取(獲取到的是多個元素,取第一個)
diocument.getElementsByName('xxx')[0]
3) 通過標簽獲取(獲取到的是多個元素,取第一個)
document.getElementsByTagName('xxx')[0]
4)通過class獲取(獲取到的是多個元素,取第一個)
document.getElementsByClassName('xxx')[0]
5) 通過css選擇器獲取
document.querySelector('css表達式”)

③js處理有iframe的富文本 text=“ 需要輸入的文本內容”
js

”document.getElementByld( *xxx' ).contentWindow.
document.body.innerHTM =' %S ;”% text
driver .execute_ script(js)
js處理有iframe的富文本無需先切換到iframe.上,再切回來操作,它可以在iframe和主頁面來回自由操作。
注意:以上js方法只是專門處理有iframe的富文本,其它地方遇到iframe不一定通用。

④js處理有iframe的普通元素
document. getElementByld(iframeid).contentWindow.
document.getElementByld(元素的id)

⑤js操作有readonly屬性的日歷控件
在例如12306網站上對日期的操作,進行如下步驟

1)去除元素的readonly屬性

2) 執行JS腳本

3)清空輸入框

4)輸入時間

js1 =document.getElementByld( train_ date ').  removeAttribute( readonly );"

driver .execute_ script(js1)

driver.find_ element_ by_ id( 'train_ date' ).clear() 

driver.find_ element_ by_ id( 'train_ _date ).send_ ke ys('2020- -06- -01') 

te HEISEvalue lt

js2

document.getElementByld( 'train_ _date' ).value= '2020-06- -01'"

driver.execute_ script(js2)⑥js操作內嵌div滾動條

先定位div的位置,再通過scrollTop和scroll eft方法控制進度。

控制縱向滾動條位置:
“document.getElementByld( xxx’).scrollTop=10000;"
driver.execute_ script(js)控制橫向滾動條位置:

“document.getElementByld( 'xXX ).scroll _eft=10000;”

driver .execute_ script(js)

⑦js解決click失效問題

方法一:先點擊父元素,找回焦點,再點擊子元
driver.find_ element(By.id,‘父元素id’).click() driver.fnd_ element(By.id ,子元素id ).click()方法二:用js直接去點擊

js =“document.getElementByld( *xxx ).click();' driver. execute_ script(js)

方法三: jquery語法去點擊

jq =“$( css表達式).click()”

driver.execute_ script(jq)二、元素判斷方法

①is_ _displayed() 判斷元素是否可見,返回布爾值

元素在頁面上有三種狀態:

1)不在dom對象里,也就是不存在這個元素;

2)在dom對象里,是隱藏元素,在頁面上不可 見,用is_ displayed()方法判斷,返回False;

3)在dom對象里,是顯示元素,在頁面上可見, 用is_ displayed()方 法判斷,返回True。

S

置”)

driver .find_ element_ by_ _link_ text(“搜索設

print(S.is_ displayed()) --- 判斷“搜索設置 ”是否可見

②is_ selected() 判斷select下拉框、單選框和復選框是否被選擇,返回布爾值

③is_ enabled 判斷元素是否可以被點擊,可以輸入文本,返回布爾值

三、expected_ conditions(EC)模塊 提供的元素判斷方法

①導入模塊

From selenium.webdriver .support expected_ conditions as EC

import

②判斷方法
1) EC.title_ _is(預期title)(driver)判斷預期title與實際title是否相等。

2) EC.title_ _contains(預期title)(driver)判斷預期title是否包含于實際title.

3) EC.text_ to_ be_ present in_ element(元素定位,預期元素文本)(driver)

判斷預期元素文本與實際元素文本是否相等

4) EC.text to_ _be_ present _in element. value(元素定位,預期value屬性)(driver)

判斷元素的預期value屬性與實際value屬性是否相等

5) EC.alert_ is_ present()(driver)判斷當前是否有alert彈框

6) EC.present of _element _located((定位方式,定位表達式))

判斷元素是否存在

7 ) EC.visibility_ of_ _element_ located(( 定位方式,定位表達式))

判斷元素是否可見

8) EC.presence_ of_ _all elements_ located((定 位方式,定位表達式))

判斷是否至少有1個元素存在舉個例子:

如果頁面上有n個元素的class都是“cloumn3”,那么只要有1個元素存在,這個方法就返回True。

EC.frame_ to_ be_ available_ and _switch_ _to_ it()

判斷該frame是否可以switch進去,如果可以,返 回True并且switch進去,否則返回False 。

10) EC.invisibility_ of _element_ located((定 位方式,定位表達式))

判斷元素是否不可見或不存在

11) EC.element to_ be_ _clickablel(定位方式,定位表達式))

判斷元素是否可見并且可操作(如可被點擊) 12) EC.staleness_ of((定位方式,定位表達式))

等某個元素從dom對象中移除

13) EC.element_ to_ be_ selected((定位方式, 定位表達式))

判斷select下拉框是否被選中

14) EC.element_ selection_ state. to be((定位方式,定位表達式))

判斷某個元素的選中狀態是否符合預期

0條評論
0 / 1000
c****u
9文章數
0粉絲數
c****u
9 文章 | 0 粉絲
原創

JS操作元素與元素判斷方法

2024-12-12 09:10:58
20
0

一、js操作元素
① js操作瀏覽器滾動條
js
"window.scrollTo(0,document.body.scrollHeigh t);" 
driver.execute_script(js)
2)滾動到頂部
js = "window.scrollTo(0,0);"
driver.execute_script(js)
3) 滾動到元素出現的位置(聚焦元素)
target = driver.find _element(By.id, "xxx))
js = "arguments[0].scrollintoView();"
driver.execute_script(js, target)
② js獲取元素的幾種方法
1) 通過id獲取(獲取到的是單個元素)
document.getElementByld('xxx')
2)通過name獲取(獲取到的是多個元素,取第一個)
diocument.getElementsByName('xxx')[0]
3) 通過標簽獲取(獲取到的是多個元素,取第一個)
document.getElementsByTagName('xxx')[0]
4)通過class獲取(獲取到的是多個元素,取第一個)
document.getElementsByClassName('xxx')[0]
5) 通過css選擇器獲取
document.querySelector('css表達式”)

③js處理有iframe的富文本 text=“ 需要輸入的文本內容”
js

”document.getElementByld( *xxx' ).contentWindow.
document.body.innerHTM =' %S ;”% text
driver .execute_ script(js)
js處理有iframe的富文本無需先切換到iframe.上,再切回來操作,它可以在iframe和主頁面來回自由操作。
注意:以上js方法只是專門處理有iframe的富文本,其它地方遇到iframe不一定通用。

④js處理有iframe的普通元素
document. getElementByld(iframeid).contentWindow.
document.getElementByld(元素的id)

⑤js操作有readonly屬性的日歷控件
在例如12306網站上對日期的操作,進行如下步驟

1)去除元素的readonly屬性

2) 執行JS腳本

3)清空輸入框

4)輸入時間

js1 =document.getElementByld( train_ date ').  removeAttribute( readonly );"

driver .execute_ script(js1)

driver.find_ element_ by_ id( 'train_ date' ).clear() 

driver.find_ element_ by_ id( 'train_ _date ).send_ ke ys('2020- -06- -01') 

te HEISEvalue lt

js2

document.getElementByld( 'train_ _date' ).value= '2020-06- -01'"

driver.execute_ script(js2)⑥js操作內嵌div滾動條

先定位div的位置,再通過scrollTop和scroll eft方法控制進度。

控制縱向滾動條位置:
“document.getElementByld( xxx’).scrollTop=10000;"
driver.execute_ script(js)控制橫向滾動條位置:

“document.getElementByld( 'xXX ).scroll _eft=10000;”

driver .execute_ script(js)

⑦js解決click失效問題

方法一:先點擊父元素,找回焦點,再點擊子元
driver.find_ element(By.id,‘父元素id’).click() driver.fnd_ element(By.id ,子元素id ).click()方法二:用js直接去點擊

js =“document.getElementByld( *xxx ).click();' driver. execute_ script(js)

方法三: jquery語法去點擊

jq =“$( css表達式).click()”

driver.execute_ script(jq)二、元素判斷方法

①is_ _displayed() 判斷元素是否可見,返回布爾值

元素在頁面上有三種狀態:

1)不在dom對象里,也就是不存在這個元素;

2)在dom對象里,是隱藏元素,在頁面上不可 見,用is_ displayed()方法判斷,返回False;

3)在dom對象里,是顯示元素,在頁面上可見, 用is_ displayed()方 法判斷,返回True。

S

置”)

driver .find_ element_ by_ _link_ text(“搜索設

print(S.is_ displayed()) --- 判斷“搜索設置 ”是否可見

②is_ selected() 判斷select下拉框、單選框和復選框是否被選擇,返回布爾值

③is_ enabled 判斷元素是否可以被點擊,可以輸入文本,返回布爾值

三、expected_ conditions(EC)模塊 提供的元素判斷方法

①導入模塊

From selenium.webdriver .support expected_ conditions as EC

import

②判斷方法
1) EC.title_ _is(預期title)(driver)判斷預期title與實際title是否相等。

2) EC.title_ _contains(預期title)(driver)判斷預期title是否包含于實際title.

3) EC.text_ to_ be_ present in_ element(元素定位,預期元素文本)(driver)

判斷預期元素文本與實際元素文本是否相等

4) EC.text to_ _be_ present _in element. value(元素定位,預期value屬性)(driver)

判斷元素的預期value屬性與實際value屬性是否相等

5) EC.alert_ is_ present()(driver)判斷當前是否有alert彈框

6) EC.present of _element _located((定位方式,定位表達式))

判斷元素是否存在

7 ) EC.visibility_ of_ _element_ located(( 定位方式,定位表達式))

判斷元素是否可見

8) EC.presence_ of_ _all elements_ located((定 位方式,定位表達式))

判斷是否至少有1個元素存在舉個例子:

如果頁面上有n個元素的class都是“cloumn3”,那么只要有1個元素存在,這個方法就返回True。

EC.frame_ to_ be_ available_ and _switch_ _to_ it()

判斷該frame是否可以switch進去,如果可以,返 回True并且switch進去,否則返回False 。

10) EC.invisibility_ of _element_ located((定 位方式,定位表達式))

判斷元素是否不可見或不存在

11) EC.element to_ be_ _clickablel(定位方式,定位表達式))

判斷元素是否可見并且可操作(如可被點擊) 12) EC.staleness_ of((定位方式,定位表達式))

等某個元素從dom對象中移除

13) EC.element_ to_ be_ selected((定位方式, 定位表達式))

判斷select下拉框是否被選中

14) EC.element_ selection_ state. to be((定位方式,定位表達式))

判斷某個元素的選中狀態是否符合預期

文章來自個人專欄
文章 | 訂閱
0條評論
0 / 1000
請輸入你的評論
0
0