最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python+Selenium實(shí)現(xiàn)瀏覽器標(biāo)簽頁(yè)的切換

 更新時(shí)間:2022年06月09日 08:47:45   作者:渴望力量的哈士奇  
在實(shí)際工作中,我們經(jīng)常會(huì)遇到頁(yè)面切換的情況。就比如當(dāng)點(diǎn)擊了某個(gè)功能的按鈕后,瀏覽器出現(xiàn)了新的標(biāo)簽頁(yè),需要在這些標(biāo)簽頁(yè)之間進(jìn)行切換。本文將利用Selenium實(shí)現(xiàn)這一功能,需要的可以參考一下

在實(shí)際工作中,我們經(jīng)常會(huì)遇到頁(yè)面切換的情況。就比如當(dāng)點(diǎn)擊了某個(gè)功能的按鈕后,瀏覽器出現(xiàn)了新的標(biāo)簽頁(yè),需要在這些標(biāo)簽頁(yè)之間進(jìn)行切換。要如何通過(guò) selenium 來(lái)實(shí)現(xiàn)這樣的場(chǎng)景呢?這就是我們今天要學(xué)習(xí)的內(nèi)容。

selenium 實(shí)現(xiàn)瀏覽器標(biāo)簽頁(yè)句柄的切換

瀏覽器標(biāo)簽頁(yè)本地文件準(zhǔn)備

這一段純粹是因?yàn)閮?nèi)容太少,拿來(lái)湊字?jǐn)?shù)的...

同樣的,這里所使用的是我們本地的 multi.html 文件,點(diǎn)擊該文件的 “register”,會(huì)跳轉(zhuǎn)至 “www.baidu.com” 。

“multi.html” 文件的前端代碼如下:

<html>
    <head>
      <meta http-equiv="content-type" content="text/html;charset=utf-8" />
      <title>Form</title>
      <script type="text/javascript" async="" src="jquery.min.js"></script>
      <link href="bootstrap-combined.min.css" rel="external nofollow"  rel="stylesheet" />
      <script src="bootstrap.min.js"></script>
    </head>
    <body>
      <h3>simple login form</h3>
      <form class="form-horizontal">
        <div class="control-group">
          <label class="control-label" for="inputEmail">Email</label>
          <div class="controls">
            <input type="text" id="inputEmail" placeholder="Email" name="email">
          </div>
        </div>
        <div class="control-group">
          <label class="control-label" for="inputPassword">Password</label>
          <div class="controls">
            <input type="password" id="inputPassword" placeholder="Password" name="password">
          </div>
        </div>
        <div class="control-group">
          <div class="controls">
            <label class="checkbox">
              <input type="checkbox"> Remember me
            </label>
            <button type="submit" class="btn">Sign in</button>
            <a  rel="external nofollow"  target="_blank">register</a>
          </div>
        </div>
      </form>
    </body>
</html>

利用 selenium 實(shí)現(xiàn)瀏覽器頁(yè)面的切換

獲取瀏覽器標(biāo)簽頁(yè)句柄方法如下:

current_window_handle 獲取當(dāng)前標(biāo)簽頁(yè)的句柄

window_handles 獲取所有標(biāo)簽頁(yè)的句柄

代碼示例如下:

# coding:utf-8

from time import sleep
from selenium import webdriver

driver = webdriver.Chrome()     # 啟動(dòng) Chrome瀏覽器的 driver
driver.maximize_window()        # Chrome 瀏覽器最大化
driver.get('file:///Users/workspace/WEB_TEST_HTML/multi.html')   # 打開(kāi)本地的 "multi.html" 文件
sleep(1)
first_window = driver.current_window_handle     # 通過(guò) current_window_handle 屬性獲取當(dāng)前標(biāo)簽頁(yè)的句柄
driver.find_element_by_link_text('register').click()     # 通過(guò) link_text 方法定位到 "register" 元素,執(zhí)行點(diǎn)擊操作(跳轉(zhuǎn)百度)
sleep(2)
all_windows = driver.window_handles     # 通過(guò) window_handles 屬性獲取當(dāng)前所有標(biāo)簽頁(yè)的句柄
for handle in all_windows:              # for 循環(huán)判斷當(dāng)前句柄是否是 first_window 句柄,如果不是則跳轉(zhuǎn)至該句柄(該句柄為百度頁(yè)面的句柄)
    if handle != first_window:
        driver.switch_to.window(handle)
        print("已跳轉(zhuǎn)至 '百度' 標(biāo)簽頁(yè)的句柄")
sleep(1)
driver.find_element_by_id('kw').send_keys('渴望力量的哈士奇')    # 在百度句柄頁(yè)面的搜索框輸入要百度的內(nèi)容 "渴望力量的哈士奇"
sleep(1)
driver.find_element_by_id('su').click()     # 點(diǎn)擊 "百度一下" 按鈕
sleep(2)
driver.switch_to.window(first_window)       # 跳轉(zhuǎn)至 "multi.html" 頁(yè)面的句柄

email_element = driver.find_element_by_xpath('//*[@id="inputEmail"]')    # 通過(guò) xpath 定位 Email 輸入框。
email_element.send_keys('username')     # Email 輸入框輸入 "username"
sleep(1)
email_element.clear()                   # 清除 Email 輸入框內(nèi)容
sleep(1)
email_element.send_keys('admin')        # Email 輸入框輸入 "admin"
driver.find_element_by_xpath('//*[@id="inputPassword"]').send_keys('123456')    # Password 輸入框輸入 "123456"
sleep(1)
driver.find_element_by_xpath('/html/body/form/div[3]/div/button').click()
sleep(1)

driver.quit()

運(yùn)行結(jié)果如下:

到此這篇關(guān)于Python+Selenium實(shí)現(xiàn)瀏覽器標(biāo)簽頁(yè)的切換的文章就介紹到這了,更多相關(guān)Python Selenium瀏覽器標(biāo)簽頁(yè)切換內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評(píng)論

大姚县| 龙口市| 蒙自县| 栾川县| 二连浩特市| 酉阳| 平湖市| 吉安市| 大余县| 洮南市| 平乡县| 九龙城区| 蓬莱市| 曲沃县| 屯留县| 西安市| 兴隆县| 进贤县| 肥东县| 红河县| 五指山市| 喀喇| 泰安市| 茶陵县| 泰顺县| 修水县| 名山县| 定边县| 昌邑市| 柘城县| 化州市| 维西| 芜湖市| 雅安市| 龙海市| 衡阳县| 兴义市| 赫章县| 涟水县| 英山县| 葵青区|