問題詳述:
事情是這樣式的,最近接收一個新項目做UI自動化,在編寫腳本時發現登錄定位不到登錄成功頁面的元素信息,嘗試了各種定位方式都不行,最后發現因為頁面是帶js渲染的網頁,所以根本就沒加載登入成功的HTML代碼!!哭暈在廁所。
雖然找到了原因,但想要解決在網上也是查詢了各種方法,爬過了各種坑,最后終於找到一種解決方式,在此記錄一下,方便以后查閱。
# !/usr/bin/env python # -*- coding: UTF-8 –*- __author__ = 'Mr.Li' from selenium import webdriver from selenium.webdriver.common.action_chains import ActionChains driver = webdriver.Chrome() driver.maximize_window() driver.get('http://service.yunfuw.beta/login') p = driver.find_element_by_xpath("//input[@class='el-input__inner']") p.send_keys('xiaoming') driver.find_element_by_xpath("//input[@placeholder='密碼']").send_keys('admin1') driver.find_element_by_xpath("//button[@class='el-button login-btn el-button--primary']").click() #跳轉到當前html頁面,此時在進行定位就可以了 driver.switch_to.window(driver.window_handles[0]) html = driver.page_source print(html)
注意:driver.switch_to.window(driver.window_handles[0])跳轉時有可能句柄還為加載,最好在前面加一個sleep()等待