粗大的内捧猛烈进出小视频,日本成人精品视频一区,在线播放亚洲成人av,精品人妻少妇嫩草av专区,亚洲AV永久久久久久久浪潮,性导航app精品视频,九九热精品免费视频,一本一本大道香蕉久在线播放

        關(guān)于Python+selenium 定位瀏覽器彈窗元素

        2018-9-11    seo達(dá)人

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

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

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

        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

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

        from selenium import webdriver import time def open_window1(): driver.get("https://www.baidu.com")
           time.sleep(2) def open_window2(): # 用JS的方法打開新窗口,模擬新標(biāo)簽頁彈窗 js = "window.open('https://www.jd.com')" driver.execute_script(js)
            time.sleep(2) def Switch_Window(): handles = driver.window_handles
            print("打印當(dāng)前已打開的窗口:"+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 # 獲取當(dāng)前打開的所有窗口的句柄
        driver.switch_to.window(handles[N]) # 切換到其中一個窗口
        其中,獲取的句柄下標(biāo)從0開始,即第一個窗口為[0]、第二個窗口為[1],如此類推。使用switch_to.window方法切換到新標(biāo)簽頁后就可以做其他操作了。 
            
        • 1
        • 2
        • 3

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

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

        日歷

        鏈接

        個人資料

        藍(lán)藍(lán)設(shè)計的小編 http://www.xintaizi.com

        存檔