【Selenium】iframe切換,switchTo()

適用場景:

表達式?jīng)]錯的情況下,
提示定位不到元素,
需要用firepath查看是否有iframe

工具:

firefox瀏覽器
firepath插件

步驟:

  1. 判斷元素是否在 iframe 內(nèi)部
    按鍵【F12】,
    用firepath的箭頭定位在元素上,
    查看firepath導(dǎo)航左上角,顯示 Top Window 還是 iframe
    若顯示 iframe,則該元素在iframe內(nèi)部,定位元素前需要先切換到iframe

  2. 拷貝 iframe 的 id或name
    在頁面任意位置按右鍵【查看元素】,打開查看器;
    再【Ctrl + f】、【Enter】,查找 iframe;
    找到與上一步相同的iframe名稱或id,拷貝。

    判斷元素是否在iframe內(nèi)部

  3. 切換到 iframe內(nèi)部
    (1)先切換
    driver.switchTo().frame("iframe的id或名稱");
    (2)接著寫定位元素的代碼

    //切換到frame內(nèi)部
    driver.switchTo().frame("x-URS-iframe");
    
    //定位登錄的元素并操作
    WebElement loginname = driver.findElement(By.xpath(".//*/input[contains(@class,'dlemail')]"));
    WebElement password = driver.findElement(By.xpath(".//*/input[contains(@class,'dlpwd')]"));
    WebElement loginbtn = driver.findElement(By.id("dologin"));
    loginname.sendKeys("testname");
    password.sendKeys("123456");
    loginbtn.click();
  1. 如果 iframe沒有 id 或 name,怎么切換?
    (1)先定位 iframe的位置
    (2)再代入switch()函數(shù)切換
  WebElement iframe = driver.findElement(By.className("APP-editor-iframe"));
  driver.switchTo().frame(iframe);
  1. 從iframe內(nèi)部,切換回默認頁面
  driver.switchTo().defaultContent();
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,711評論 19 139
  • 1. 簡介 1.1 什么是 MyBatis ? MyBatis 是支持定制化 SQL、存儲過程以及高級映射的優(yōu)秀的...
    笨鳥慢飛閱讀 6,289評論 0 4
  • 前端開發(fā)面試題 <a name='preface'>前言</a> 只看問題點這里 看全部問題和答案點這里 本文由我...
    自you是敏感詞閱讀 905評論 0 3
  • 見信如面 我想告訴你途經(jīng)的見聞 荒漠有棵蒼老的古樹在眠一場清夢 巖石懸垂著苔蘚 有溪流與青草 毛毛蟲正在破繭而出 ...
    筆名襪子閱讀 568評論 0 0
  • 【安妮寶貝】20171207雙語媽媽啟蒙營D6 牛津樹2級,2.1,2.27-2.30讀第二遍,2.2讀第一遍,2...
    Anne安霓閱讀 334評論 0 0

友情鏈接更多精彩內(nèi)容