Selenium系列教程-09 如何切換iframe

系列資源:javascript

主要內容

  • iframe 切換
  • 安居客登陸頁面實例

frame 簡介

<frame> 是 HTML 元素,它定義了一個特定區域,另外一個 HTML 文檔能夠在裏面展現。幀應該在 <frameset>中使用。 <frame>由於有一些缺點,好比性能問題,以及使用屏幕閱讀器的用戶缺乏可訪問性。因此提倡使用<iframe>。 下面給你們簡單使用html代碼爲你們演示:html

<h1>helloworld</h1>

<iframe src="https://www.baidu.com" style="width:640px;height:480px"></iframe>

複製代碼

咱們能夠看到iframe中嵌入百度頁面。而且你能夠用百度進行搜索。java

selenium 如何操做iframe

以上圖html代碼爲例,若是咱們要在咱們定義的iframe中進行百度搜索操做。使用咱們以前的方式是行不通的。須要咱們切換到iframe中才能進行操做。 selenium 爲咱們提供了相關的API切換到iframe中。以node.js爲例,咱們能夠經過調用 webdriver.switchTo().frame()來切換iframe。具體參考api: seleniumhq.github.io/selenium/do…node

安居客登陸示例git

以安居客登陸頁面爲例,示範如何經過使用切換iframe。 首頁,咱們經過開發者工具查看安居客首頁,發現登陸表單是在 <iframe> 標籤中,而且有id屬性。github

這個時候若是咱們要在登陸表單中輸入信息,咱們必須首先切換到iframe中才能操做。 以下,node.js爲實現的selenium代碼:web

var webdriver = require('selenium-webdriver')

let driver = new webdriver.Builder().forBrowser('chrome').build()

async function run (){
    await driver.get('https://login.anjuke.com/login/form')

    //取frame的id值,切換到frame中
    await driver.switchTo().frame('iframeLoginIfm')

    //進行表單操做
    await driver.findElement({id:'phoneIpt'}).sendKeys('123456')

}

run()

複製代碼

獲取更多資訊,能夠關注公衆號,也能夠加QQ羣:707467292 進行node.js自動化相關技術交流。chrome

相關文章
相關標籤/搜索