天天看點

pyhtoin-selenium控制浏覽器前進(forward)、後退(back)、重新整理(refresh)

控制浏覽器前進(forward)、後退(back)、重新整理(refresh)

今天遇到一個需求,當我想從一個父頁面跳轉到子頁面進行操作,操作完之後沒有“傳回”之類的按鈕或連結,重新進入父頁面又很麻煩。

是以整理這篇文章作為總結。

我們能看到的浏覽器導航欄的三個按鈕 —— 後退、前進、重新整理,所對應的如下

driver.back()
driver.forward()
driver.refresh()      

我直接使用CSDN作為例子,打開我自己的部落格首頁,點選學院。

from selenium import webdriver
from time import sleep
driver = webdriver.Chrome()

print('base_url: ', driver.current_url)
driver.find_element_by_xpath("//*[text()='學院']").click()
sleep(2)
print('after search: ', driver.current_url)

driver.back()
print('back to: ', driver.current_url)

driver.forward()
print('forward to: ', driver.current_url)

sleep(2)
driver.refresh()
print('refresh: ', driver.current_url)

sleep(2)
driver.quit()      

注意這裡回退網頁後,需要重新定位元素,不能使用之前的,會出錯。繼續用上面的例子:

from selenium import webdriver
from time import sleep
driver = webdriver.Chrome()

print('base_url: ', driver.current_url)
ele = driver.find_element_by_xpath("//*[text()='學院']")
sleep(2)

driver.refresh()
ele.click()

sleep(2)
driver.quit()      

重新整理頁面後需要重新去定位,改正:

from selenium import webdriver
from time import sleep
driver = webdriver.Chrome()

print('base_url: ', driver.current_url)
ele = driver.find_element_by_xpath("//*[text()='學院']")
sleep(2)

driver.refresh()
driver.find_element_by_xpath("//*[text()='學院']").click()

sleep(2)
driver.quit()