<strike id="cy2gs"><menu id="cy2gs"></menu></strike>
  • <del id="cy2gs"><dfn id="cy2gs"></dfn></del>
  • 關于Python+selenium 定位瀏覽器彈窗元素

    2018-9-11    seo達人

    如果您想訂閱本博客內容,每天自動發(fā)到您的郵箱中, 請點這里

    我也是剛學自動化,在自學過程中發(fā)現(xiàn)瀏覽器中有一些彈窗元素,無法定位。經(jīng)過自己的摸索,有一些心得,寫下來供日后自己回顧。
    首先要確定彈窗的類型:
    (1)div彈窗
    (2)新標簽頁彈窗
    (3)alert彈窗 
        
    • 1
    • 2
    • 3
    • 4
    • 5

    一,div彈窗 
    div彈窗是瀏覽器中比較好定位的彈窗,定位的方法與普通的元素一樣。不過這里會有一個坑,明明可以找到這個按鈕,但是就是定位不到。這個就是因為當前有div彈窗彈出的時候,需要設置一下等待時間,等頁面元素加載完畢,再去做其他操作。 
    這里用百度登陸為例子:

    from selenium import webdriver import time def login_baidu(url,username,password): driver.get(url)
        driver.find_element_by_xpath('//*[@id="u1"]/a[7]').click()
        time.sleep(2)
        driver.find_element_by_xpath('//*[@id="TANGRAM__PSP_10__footerULoginBtn"]').click()
        time.sleep(2) # 彈窗出現(xiàn)后,使頁面等待2S login_username = driver.find_element_by_xpath('//*[@id="TANGRAM__PSP_10__userName"]')
        login_username.click()
        login_username.send_keys(username)
    
        login_passwork = driver.find_element_by_xpath('//*[@id="TANGRAM__PSP_10__password"]')
        login_passwork.click()
        login_passwork.send_keys(password)
    
        driver.find_element_by_xpath('//*[@id="TANGRAM__PSP_10__submit"]').click() # 登陸按鈕 if __name__ == "__main__":
        driver = webdriver.Firefox()
        username = r'xxx@qq.com' password = r'xxxx' url = r'https://www.baidu.com' login_baidu(url,username,password) 
        
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27

    二,新標簽頁彈窗 
    新標簽頁彈窗,則需要進行窗口的切換。此處第一個窗口打開百度首頁,在打開一個新窗口打開京東首頁,在兩個窗口之間進行切換。切換到不同的窗口之后,就可以用常規(guī)的方法進行元素的定位。

    from selenium import webdriver import time def open_window1(): driver.get("https://www.baidu.com")
       time.sleep(2) def open_window2(): # 用JS的方法打開新窗口,模擬新標簽頁彈窗 js = "window.open('https://www.jd.com')" driver.execute_script(js)
        time.sleep(2) def Switch_Window(): handles = driver.window_handles
        print("打印當前已打開的窗口:"+str(handles)) while(5): # 在兩個窗口之間做五次切換動作 driver.switch_to.window(handles[0])
            time.sleep(5)
            driver.switch_to.window(handles[1])
            time.sleep(5) if __name__ == "__main__" :
        driver = webdriver.Firefox()
        open_window1()
        open_window2()
        Switch_Window() 
        
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    handles = driver.window_handles # 獲取當前打開的所有窗口的句柄
    driver.switch_to.window(handles[N]) # 切換到其中一個窗口
    其中,獲取的句柄下標從0開始,即第一個窗口為[0]、第二個窗口為[1],如此類推。使用switch_to.window方法切換到新標簽頁后就可以做其他操作了。 
        
    • 1
    • 2
    • 3

    三、alert彈窗 
    該類型的彈窗暫沒有合適的項目進行練習,待后續(xù)完善

    藍藍設計www.skdbbs.com )是一家專注而深入的界面設計公司,為期望卓越的國內外企業(yè)提供卓越的UI界面設計、BS界面設計 、 cs界面設計 、 ipad界面設計 、 包裝設計 、 圖標定制 、 用戶體驗 、交互設計、 網(wǎng)站建設 平面設計服務

    日歷

    鏈接

    個人資料

    藍藍設計的小編 http://www.skdbbs.com

    存檔

    主站蜘蛛池模板: 久久精品二区| 人妻精品久久久久中文字幕69 | 亚洲精品欧美综合| 亚洲精品国产av成拍色拍| 国产高清在线精品一区二区 | avtt天堂网久久精品| 亚洲综合国产精品第一页 | 久久精品国产一区二区三区不卡| 国产精品久久久久天天影视| 免费精品无码AV片在线观看| 亚洲精品人成无码中文毛片| 欧美XXXX黑人又粗又长精品| 国产亚洲精品影视在线产品| 2021国产精品视频网站| 大桥未久在线精品视频在线| 国产在线精品无码二区| 精品国精品国产自在久国产应用 | 99久久久精品免费观看国产| 久久99国产综合精品女同| 午夜成人精品福利网站在线观看 | 日韩精品国产自在久久现线拍 | 精品无码一级毛片免费视频观看| segui久久国产精品| 日韩精品www| 91亚洲国产成人久久精品网址| 久久精品国产福利国产秒| 精品久久777| 久久久国产精品福利免费| 2022年国产精品久久久久| freesexvideos精品老师毛多| 精品熟女少妇av免费久久| 漂亮人妻被黑人久久精品| 人妻少妇精品视频二区| 精品国偷自产在线| 51视频国产精品一区二区| 99精品在线观看| 久久99久久99小草精品免视看| 久久国产精品99精品国产987| 日韩麻豆国产精品欧美| 国产精品va久久久久久久| 久久99精品久久久久久秒播|