国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Selenium —— 網(wǎng)頁(yè)frame與多窗口處理!

這篇具有很好參考價(jià)值的文章主要介紹了Selenium —— 網(wǎng)頁(yè)frame與多窗口處理!。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

Selenium —— 網(wǎng)頁(yè)frame與多窗口處理!,測(cè)試工程師,軟件測(cè)試,自動(dòng)化測(cè)試,selenium,測(cè)試工具,自動(dòng)化測(cè)試,軟件測(cè)試,測(cè)試工程師

一、多窗口處理.

1.1、多窗口簡(jiǎn)介

點(diǎn)擊某些鏈接,會(huì)重新打開?個(gè)窗?,對(duì)于這種情況,想在新頁(yè)?上操作,就
得先切換窗?了。
獲取窗?的唯?標(biāo)識(shí)?句柄表?,所以只需要切換句柄,就可以在多個(gè)頁(yè)?靈
活操作了

1.2、多窗口處理流程

  • 先獲取當(dāng)前窗口的句柄driver.current_window_handle
  • 再獲取所有的窗口句柄driver.windows_handles
  • 然后判斷當(dāng)前窗口是否為需要操作的窗口,如果不是則,切換到下一個(gè)窗口,如果是,則在當(dāng)前窗口進(jìn)行操作
def test_switch_window(self):
        """窗口切換操作"""
        # 1、打開百度
        self.driver.get("https://www.baidu.com")
        print(self.driver.title, self.driver.current_window_handle)
        # 2、打開搜狗
        self.driver.switch_to.new_window()
        self.driver.get("https://www.sougou.com")
        print(self.driver.title, self.driver.current_window_handle)
        # 3、打開hao360
        self.driver.switch_to.new_window()
        self.driver.get("https://hao.360.com/")
        print(self.driver.title, self.driver.current_window_handle)
        # 4、打開測(cè)試人
        self.driver.switch_to.new_window()
        self.driver.get("https://ceshiren.com")
        print(self.driver.title, self.driver.current_window_handle)
        handles = self.driver.window_handles
        print(handles)
        self.driver.switch_to.window(handles[0])
        self.driver.switch_to.window(handles[-1])
        print(self.driver.title)

二、多網(wǎng)頁(yè)frame處理

2.1、frame簡(jiǎn)介

在web自動(dòng)化中,如果一個(gè)元素始終無(wú)法定位,那么很有可能是frame中
  • 什么是frame呢?
frame是html的框架,所謂框架就是可以在同一個(gè)頁(yè)面顯示不止一個(gè)區(qū)域,基于html框架,又可以分為垂直框架和水平框架(cols,rows)
  • frame分類
    • frame標(biāo)簽分為frameset,ifame、frame三種
    • frameset和普通的標(biāo)簽一樣,不會(huì)影響正常的元素定位,可以使用index、id、name、webelement等方式定位到frame
    • frame、iframe相當(dāng)于selenium而言,則需要進(jìn)行一些特殊的操作后,才能到定位到元素
現(xiàn)在我也找了很多測(cè)試的朋友,做了一個(gè)分享技術(shù)的交流群,共享了很多我們收集的技術(shù)文檔和視頻教程。
如果你不想再體驗(yàn)自學(xué)時(shí)找不到資源,沒人解答問題,堅(jiān)持幾天便放棄的感受
可以加入我們一起交流。而且還有很多在自動(dòng)化,性能,安全,測(cè)試開發(fā)等等方面有一定建樹的技術(shù)大牛
分享他們的經(jīng)驗(yàn),還會(huì)分享很多直播講座和技術(shù)沙龍
可以免費(fèi)學(xué)習(xí)!劃重點(diǎn)!開源的!??!
qq群號(hào):110685036

Selenium —— 網(wǎng)頁(yè)frame與多窗口處理!,測(cè)試工程師,軟件測(cè)試,自動(dòng)化測(cè)試,selenium,測(cè)試工具,自動(dòng)化測(cè)試,軟件測(cè)試,測(cè)試工程師

2.2、多frame切換

  • frame存在兩種
    • 一種嵌套的
    • 一種未嵌套的
  • 切換frame
    • driver.swich_to.frame():根據(jù)元素id、index切換frame
    • driver.switch_to.default_content():切換到默認(rèn)的frame
    • deiver.switch_to.parent_frame():切換到父級(jí)frame

未嵌套的frame

  • driver.switch_to.frame(‘frame的id’):有id時(shí)優(yōu)先使用id
  • driver.switch_to.frame(‘frame-index’):沒有id的時(shí)間根據(jù)索引來(lái)處理,索引從0開始

嵌套的frame

  • 對(duì)于嵌套的frame,則先進(jìn)入到frame的父節(jié)點(diǎn),再進(jìn)到子節(jié)點(diǎn),然后可以就可以子節(jié)點(diǎn)中的元素對(duì)象進(jìn)行操作了
  • driver.switch_to.frame(“父節(jié)點(diǎn)”)
  • driver.switch_to.frame(“子節(jié)點(diǎn)”)
def test_switch_frame(self):
        # ? 打開包含frame的web頁(yè)? https://www.runoob.com/try/try.php?filename=jqueryui-api-droppable
        # ? 打印’請(qǐng)拖拽我’元素的?本
        # ? 打印’點(diǎn)擊運(yùn)?’元素的?
        self.driver.get("https://www.runoob.com/try/try.php?filename=jqueryui-api-droppable")
        self.driver.switch_to.frame("iframeResult")
        ele01 = self.driver.find_element(By.ID, "draggable")
        print(ele01.text)
        ele02 = self.driver.find_element(By.ID, "droppable")
        print(ele02.text)
        self.action.drag_and_drop(ele01, ele02).perform()
        time.sleep(3)
        self.driver.switch_to.alert.accept()
        # self.driver.switch_to.default()
        # self.driver.switch_to.parent_frame()

END今天的分享就到此結(jié)束了,對(duì)你有所幫助的話留下小心心哈!?文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-742741.html

到了這里,關(guān)于Selenium —— 網(wǎng)頁(yè)frame與多窗口處理!的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • python-selenium-框架定位的處理frame

    python-selenium-框架定位的處理frame

    Frame框架是Html框架結(jié)構(gòu)中一種布局格式,共有三種形式:frameset、frame、iframe frame是整個(gè)頁(yè)面的框架,iframe是內(nèi)嵌的網(wǎng)頁(yè)元素,也可以說(shuō)是內(nèi)嵌的框架 頁(yè)面比較復(fù)雜,頁(yè)面套頁(yè)面,定位第幾層窗口,找元素時(shí),要先看元素在哪個(gè)框架,找到框架在定位元素。 框架也是某一個(gè)具

    2024年02月11日
    瀏覽(23)
  • python自動(dòng)化測(cè)試selenium定位frame及iframe示例

    python自動(dòng)化測(cè)試selenium定位frame及iframe示例

    這篇文章主要為大家介紹了python自動(dòng)化測(cè)試selenium定位frame及iframe示例的示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助 frame標(biāo)簽有frameset、frame、iframe三種,frameset和其它普通標(biāo)簽沒有區(qū)別,不會(huì)影響正常定位,而frame與iframe對(duì)selenium定位而言是一樣的。 Selenium有

    2024年01月20日
    瀏覽(26)
  • MFC第二十八天 WM_SIZE應(yīng)用,CFrameWnd類LoadFrame的方法,PreCreateWindow窗口預(yù)處理,F(xiàn)rame-view窗口視圖

    MFC第二十八天 WM_SIZE應(yīng)用,CFrameWnd類LoadFrame的方法,PreCreateWindow窗口預(yù)處理,F(xiàn)rame-view窗口視圖

    點(diǎn)擊相應(yīng)控件的屬性,對(duì)其進(jìn)行動(dòng)態(tài)布局的設(shè)置,選擇兩者,窗口再次進(jìn)行拉伸就會(huì)進(jìn)行改變。 a)CFrameWnd類偏愛WM_CREATE,因?yàn)樗械膬?nèi)部窗口都是代碼創(chuàng)建的。 而不像對(duì)話框是拖入的。 b)CFrameWnd::rectDefault管理層疊 static const CRect rectDefault; c)LoadFrame內(nèi)部包含CreateFrame,同時(shí)執(zhí)行

    2024年02月14日
    瀏覽(27)
  • 在訪問一個(gè)網(wǎng)頁(yè)時(shí)彈出的瀏覽器窗口,如何用selenium 網(wǎng)頁(yè)自動(dòng)化解決?

    在訪問一個(gè)網(wǎng)頁(yè)時(shí)彈出的瀏覽器窗口,如何用selenium 網(wǎng)頁(yè)自動(dòng)化解決?

    相信大家在使用selenium做網(wǎng)頁(yè)自動(dòng)化時(shí),會(huì)遇到如下這樣的一個(gè)場(chǎng)景: 在你使用get訪問某一個(gè)網(wǎng)址時(shí),會(huì)在頁(yè)面中彈出如上圖所示的彈出框。 首先想到是利用Alert類來(lái)處理它。 然而,很不幸,Alert類處理的結(jié)果就是沒有結(jié)果,并不能夠?qū)⑦@個(gè)彈出框關(guān)閉掉。 無(wú)法用處理alert的

    2024年02月10日
    瀏覽(27)
  • selenium 網(wǎng)頁(yè)自動(dòng)化-在訪問一個(gè)網(wǎng)頁(yè)時(shí)彈出的瀏覽器窗口,我該如何處理?

    selenium 網(wǎng)頁(yè)自動(dòng)化-在訪問一個(gè)網(wǎng)頁(yè)時(shí)彈出的瀏覽器窗口,我該如何處理?

    相信大家在使用selenium做網(wǎng)頁(yè)自動(dòng)化時(shí),會(huì)遇到如下這樣的一個(gè)場(chǎng)景: 在你使用get訪問某一個(gè)網(wǎng)址時(shí),會(huì)在頁(yè)面中彈出如上圖所示的彈出框。 首先想到是利用Alert類來(lái)處理它。 然而,很不幸,Alert類處理的結(jié)果就是沒有結(jié)果,并不能夠?qū)⑦@個(gè)彈出框關(guān)閉掉。 無(wú)法用處理alert的

    2024年02月07日
    瀏覽(26)
  • 每年是誰(shuí)撐起了“雙十一”網(wǎng)頁(yè)不崩潰?是程序員還是軟件測(cè)試工程師們?

    每年是誰(shuí)撐起了“雙十一”網(wǎng)頁(yè)不崩潰?是程序員還是軟件測(cè)試工程師們?

    ?2021天貓雙11全球狂歡季,前半小時(shí)的成交額破3723億,有你的一份嗎? 這個(gè)“ 剁手 ”的狂歡夜,也是 軟件測(cè)試工程師 的不眠夜。 在日期變化的那一秒“ 點(diǎn)擊付款 “已經(jīng)成為一種儀式。儀式感的背后是服務(wù)器會(huì)同步收到巨量請(qǐng)求,為了避免短時(shí)間全網(wǎng)性的猛烈沖擊,軟件

    2023年04月12日
    瀏覽(156)
  • Selenium 4 窗口處理

    在Selenium自動(dòng)化測(cè)試中,窗口處理是一個(gè)重要的技術(shù)。隨著Selenium 4的發(fā)布,窗口處理功能得到了大幅改進(jìn)和增強(qiáng)。本文將介紹如何使用Selenium 4來(lái)處理窗口操作。 要獲取當(dāng)前窗口的句柄(handle),可以使用 driver.current_window_handle 方法。示例代碼如下: 示例 輸出結(jié)果 注解 瀏覽

    2024年04月24日
    瀏覽(11)
  • Selenium基礎(chǔ)知識(shí) 多窗口處理

    有時(shí)需要在多個(gè)窗口之間來(lái)回切換從而測(cè)試一些功能。例如在手機(jī)注冊(cè)頁(yè)面、郵箱注冊(cè)頁(yè)面及其他社交帳號(hào)注冊(cè)頁(yè)面分別進(jìn)行測(cè)試,可以同時(shí)打開多個(gè)窗口進(jìn)行注冊(cè)及登錄。 Selenium針對(duì)跨瀏覽器的窗口處理應(yīng)注意以下幾點(diǎn): · 在Selenium中每個(gè)窗口被當(dāng)作一個(gè)會(huì)話句柄。 · We

    2024年02月16日
    瀏覽(28)
  • selenium并發(fā)處理多個(gè)窗口線程/進(jìn)程任務(wù)

    這里以百度搜索為例,通過(guò)不同的瀏覽器來(lái)啟動(dòng)不同的線程。

    2024年01月20日
    瀏覽(20)
  • 【Selenium自動(dòng)化測(cè)試】窗口切換

    在Web自動(dòng)化測(cè)試過(guò)程中,有時(shí)單擊某個(gè)鏈接會(huì)彈出新的窗口,這時(shí)就需要切換到新打開的窗口中進(jìn)行操作。WebDriver 提供的 switch_to.window() 方法可以實(shí)現(xiàn)在不同的窗口之間進(jìn)行切換。 主要用到的相關(guān)方法: current_window_handle:獲得當(dāng)前窗口句柄。 window_handles:返回所有窗口的句

    2024年02月11日
    瀏覽(21)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包