当你在执行你的自动化脚本的时候卡在某个地方,或者你没有找到一个方法来重新加载现在需要的页面,该怎么办呢?
Selenium 提出了一些惊人的技术,帮助你轻松解决这些问题。Selenium有一些非常简单的命令,可以用来刷新或重新加载页面。还有一些其他的方法可以用来前进或后退页面。今天我们将熟悉其中的一些功能。
设置环境
所以,让我们开始这个过程。WebDriver 模块需要从Selenium中导入,然后从中创建一个驱动对象。接下来,我们需要指定chromedriver 的路径,因为我们将使用chrome浏览器来滚动页面。我们还需要导入时间模块。maximize_window() 的方法,以便有一个更好的视野。然后尝试使用driver.get() 方法连接到网站。今天我们将使用 "ALL MOVIE "网站来达到我们的目的。
from selenium import webdriver
import time
driver = webdriver.Chrome(executable_path = r'G:/chromedriver_win32/chromedriver.exe')
driver.maximize_window()
driver.get('https://www.allmovie.com/')

使用refresh()刷新页面
Selenium Webdriver为我们提供了一个特殊的方法,叫做refresh() ,它使我们能够非常容易地刷新页面。在加载 "ALL MOVIE "博客页面后,如果我们想刷新页面,我们可以用这个方法来实现。我们将设置时间差为10秒,这样我们就可以清楚地看到页面的刷新时刻。重新加载页面的时间正好是10秒。代码是这样的。
time.sleep(10)
driver.refresh()
博客将在网页初始化后的10秒内被重新加载。这个方法在我们需要在脚本中间刷新页面或在执行浏览器即时刷新的时候真的很有用。
后退一个网页
让我们点击 "ALL MOVIE "网页上的 "发现 "按钮。

我希望你已经从上面的链接中了解了Selenium的click() 方法。现在我们将使用find_element_by_link_text() 方法来定位 "发现 "按钮的元素,然后尝试用click() 方法来点击它。让我们创建一个 "发现 "变量,其中包含定位的网络元素。
time.sleep(3)
discover = driver.find_element_by_link_text('Discover')
discover.click()
它将把我们带到代表 "发现 "按钮的下一个网页。

现在,如果我们想回到先前的页面,我们可以用Selenium webdriver的driver.back() 方法来做。代码将是这样的。
time.sleep(5)
driver.back()
执行代码后,我们将再次回到先前的页面。
如何转发一个网页
使用Seleniumwebdriver 也可以转到下一个页面。它可以自动点击前进按钮转到下一个页面。我们可以通过Seleniumwebdriver 的driver.forward() 方法实现这一点。但是在这之前,我们需要再次使用time.sleep() 方法,以便让浏览器有一些时间来正常加载。代码将是这样的。
time.sleep(5)
driver.forward()
执行完命令后,我们将回到所需的页面。
这就是我们用来刷新页面或向后或向前移动的方法的全部内容。希望这很有趣。