セレンハンドル、マルチウィンドウの問題を解決する方法

、我々は特定のリンクページをクリックすると、それが現在のページにありませんが、ウェブブラウズブラウザを開いたときに時々直接ジャンプではなく、新しいページを操作するために、この場合には、新しいタブページを再オープンへあなたは、最初のウィンドウを切り替えることがあります。ユニークな取得ウィンドウは、ハンドルによって表されるので、ちょうどスイッチハンドルに必要され、我々は複数のページでの操作をスムーズにすることができます識別します。

まず、マルチウィンドウの理解

図1は、ここでは例えば、市場オープンに行って、市場のネットワークに移動するには、ウィンドウを再オープンするでしょう、仕事をクリックしてください。

 


画像

第二に、現在のウィンドウハンドルを取得

1.要素には属性があり、ブラウザウィンドウには、実際にプロパティを持っていますが、あなたは、ハンドル(取っ手)とブラウザウィンドウのプロパティを識別するために見ることができません。

2.人間のオペレータ、その後、目、異なる識別ウィンドウで、スイッチをクリックします。しかし、スクリプトが目を持っていない、それはあなたが動作したいウィンドウを知らない、この時間はわずか裁判官に扱うことができます。

browser.current_window_handle:現在のページへのハンドルを取得します3。

 


画像

4.結果を実行します

 


画像

第三に、すべてのウィンドウハンドルへのアクセス

1、すべてのウィンドウハンドルを取得します:brows.window_handles

 


画像

2、結果

 


画像

第四に、スイッチングハンドル

この方法の一つ:

1サイクルは、決定されたホーム・ハンドルに等しいです。

2.等しくない場合、それは新しいページへのハンドルです。

3.新しいページハンドルを取得した後、開かれた新しいページに切り替えることができます。

4.スイッチが成功したかどうかを確認するために、新しいページのタイトルを印刷します。

 


画像

結果

 


画像

方法2:

秒針値をall_hデータのリストへの直接アクセス:all_h [I]

 


画像

結果

 


画像

第五には、元のウィンドウに戻るには新しいウィンドウを閉じます

1.新しいページが、実際には、ちょうどあなたが現在のページのタイトルを取得し、検証、簡単な検証を行うことができます新しいページを、確認するために、右にジャンプします。

新しいウィンドウを切断した後に確認2。

バック3.カットフロントページへのハンドル。

4.ホームページに切り替えるかどうかを確認するために、現在のページのハンドルを印刷します。

 


画像

結果

 


画像

第六に、参照コード

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @File    : handles.py
# @Software: PyCharm
import time
from selenium import webdriver
url = 'http://cd.ganji.com/'
browser = webdriver.Firefox()
browser.get(url)
time.sleep(5)
# 获取当前页面的窗口句柄
handle = browser.current_window_handle
print(handle)
# 获取所有窗口句柄
browser.find_element_by_link_text('成都招聘').click()
handles = browser.window_handles
print(handles)
# 方法一:判断句柄是否与首页相等
for i in handles:
    if i != handle:
        browser.switch_to.window(i)
        print(browser.title)
        browser.close()
        browser.switch_to.window(handle)
        print(browser.title)
# 方法二:直接获取list列表里面的值,取值handles[i]
# browser.switch_to.window(handles[0])
# print(browser.title)
# 退出
browser.quit()

おすすめ

転載: www.cnblogs.com/jiachangwei/p/12148409.html