selenium3+python自動化2-瀏覽器基本操作(窗口切換、前進/后退、截屏)


一、多個窗口的切換

以百度為例:打開百度是一個窗口,點擊登錄》立即注冊,就會打開第二個窗口,如何讓兩個窗口進行切換?

先獲取當前打開所有窗口的handles,用到handles=driver.window_handles,此時handles是列表格式

再使用索引,切換到指定的窗口用到driver.switch_to.windows(handles[索引值]),索引值從0開始計算

from selenium import webdriver
from time import sleep
driver=webdriver.Chrome()
driver.get('https://www.baidu.com/')
sleep(1)
#切換窗口
driver.find_element_by_link_text('登錄').click()
sleep(2)
driver.find_element_by_link_text('立即注冊').click()
sleep(2)
handles=driver.window_handles
# print(type(handle),len(handle))
# driver.switch_to_window(handle[1])此方法不適用
driver.switch_to.window(handles[0])#切換窗口
sleep(1)
driver.quit()

二、自己將8種定位方法函數化與By模塊的比較

#自己定義的函數
def findElement(driver,key,value):
    if key=="id":#通過id定位
        element=driver.find_element_by_id(value)
    if key=="calss_name":#通過class定位
        element = driver.find_element_by_calss_name(value)
    if key=="name":#通過name定位
        element = driver.find_element_by_name(value)
    if key=="tag_name":#通過tag定位
        element = driver.find_element_by_tag_name(value)
    if key=="link_text":#通過link定位
        element = driver.find_element_by_link_text(value)
    if key=="xpath":#xpath路徑定位
        element = driver.find_element_by_xpath(value)
    if key=="css_selector":#通過css定位
        element = driver.find_element_by_css_selector(value)
    return element
#By和自己寫的元素定位方法的區別
from selenium.webdriver.common.by import By
element=driver.find_element(By.ID,'kw')#每次都要重復寫driver.find_element(...)
element.send_keys("楊迅")

# from ANN.common_model import *
# element1=findElement(driver,"id","kw")#直接調用函數,簡單
# element1.send_keys("yang")

三、瀏覽器其他的操作,設置窗口大小,前進后退,截屏,直接見代碼

from selenium import webdriver
from time import sleep
driver=webdriver.Chrome()
driver.get('https://www.baidu.com/')
sleep(2)
# #瀏覽器返回上一頁
# driver.back()
# sleep(3)
# #瀏覽器切換到下一頁
# driver.forward()
# sleep(2)
# #設置窗口大小
# driver.set_window_size(540,960)
# sleep(1)
# driver.maximize_window()
# sleep(2)
# #截屏
# driver.get_screenshot_as_file(r'F:\截圖\b2.png')


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM