python+selenium十一:jQuery和js文法、js處理iframe

來源:互聯網
上載者:User

標籤:into   read   inner   清空   通用   富文本   scrolltop   Edito   支援   

selenium 執行jQuery/js文法
driver.execute_script(jQuery/js)

1、jQuery

jQuery只支援css文法:

jquery = ‘$(CSS).val("XXX");‘   # 根據css文法定位到元素,輸入內容
jquery = ‘$(CSS).val(‘‘);‘ # 清空
jquery = ‘$(CSS).click();‘ # 點擊

2、js

1.通過id擷取 document.getElementById(“id”)----------擷取的是單個

2.通過name擷取 document.getElementsByName(“Name”)[0]---------擷取的是多個   返回的是list

3.通過標籤名選取元素 document.getElementsByTagName(“tag”) --------擷取的是多個

4.通過CLASS類選取元素 document.getElementsByClassName(“class”) --------擷取的是多個 相容性:IE8及其以下版本的瀏覽器未實現getElementsByClassName方法

5.通過CSS選取器選取元素 document.querySelectorAll(“css selector") 相容性:IE8及其以下版本的瀏覽器只支援CSS2標準的選取器文法

 

 

js = ‘document.getElementById(xxx).value="XXXX"‘      # 輸入值

js = ‘document.getElementsByClassName("prefpanelgo")[0].click();‘  # 點擊

 

# 去掉元素的readonly屬性

js = ‘document.getElementById("xxx").removeAttribute("readonly");‘

driver.execute_script(js)

 

# 去掉日期控制項的readonly屬性,並填入日期

js = ‘document.getElementById(xxx).removeAttribute("readonly");document.getElementById(xxx).value="20xx-xx-xx"‘

driver.execute_script(js)

jquery = ‘$("#train_date").val("");$("#train_date").val("20xx-xx-xx");$("#query_ticket").click()‘

driver.execute_script(jquery)

 

# 聚焦元素

target = self.find_element(locator)

driver.execute_script("arguments[0].scrollIntoView();", target)

 

內嵌捲軸:

# 縱向底部

# 擷取id是單個元素,因為一個頁面上id是唯一的

#js = ‘document.getElementById("XXXX").scrollTop=10000‘

# 擷取的class是多個,取list的第一個對象

# 頂部:scrollTop=0,底部:scrollTop=10000

js0 = ‘document.getElementsByClassName("scroll")[0].scrollTop=10000‘

driver.execute_script(js0)

# 控制橫向捲軸位置

# 最左邊:scrollLeft=0,最右邊:scrollLeft=10000

js1 = ‘document.getElementsByClassName("scroll")[0].scrollLeft=10000‘

driver.execute_script(js1)

 

# js處理iframe

# Js處理iframe無需先切換到iframe上,再切回來操作。 它可以在iframe上和首頁面上來回自由操作-----這是Js的強大之處

js = ‘document.getElementById("Editor_Edit_EditorBody_ifr").contentWindow.document.body.innerHTML="%s"‘ % jstext

driver.execute_script(js)

# innerHTML:插入html常值內容

# 以上js寫法只是專門處理富文本(有iframe)相關的問題,其它地方遇到iframe不一定通用

python+selenium十一:jQuery和js文法、js處理iframe

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.