如何刷新已经打开的网页
Posted
技术标签:
【中文标题】如何刷新已经打开的网页【英文标题】:How to refresh an already opened web page 【发布时间】:2015-04-12 00:15:34 【问题描述】:我只想用Selenium
刷新一个已经打开的网页。
它总是打开一个新的浏览器窗口。
我做错了什么?
from selenium import webdriver
import urllib
import urllib2
driver = webdriver.Firefox()
driver.refresh()
【问题讨论】:
你试过使用driver.navigate().refresh()
吗?
您显示的代码不会重现您报告的问题。 webdriver.Frirefox()
行将启动一个新的浏览器。但是driver.refresh()
对您显示的代码没有任何作用。如果您添加一个 driver.get()
调用来加载一个好的 URL,那么页面会按应有的方式刷新。
【参考方案1】:
对我有帮助
from selenium import webdriver
import time
driver = webdriver.Firefox()
driver.get("URL")
time.sleep(5)
driver.refresh()
【讨论】:
【参考方案2】:我通过在 for 循环或 while 循环中添加“browser.refresh()
”来修复我的问题。
【讨论】:
【参考方案3】:您正在尝试在页面加载之前刷新页面,以便您可以使用睡眠功能
from time import sleep
sleep(1)
或者您可以等待 XPath 加载
WebDriverWait(driver, 30).until(EC.presence_of_element_located((By.XPATH, xpath goes here)))
【讨论】:
【参考方案4】:以下代码对我有用
driver.get(driver.current_url)
sleep(2)
driver.refresh()
我使用 python 3.7.6,硒 3.141.0
【讨论】:
【参考方案5】:问题是您正在打开 webdriver,然后在未指定 URL 时尝试刷新。
您需要做的就是在刷新之前获取所需的 URL:
from selenium import webdriver
import urllib
import urllib2
driver = webdriver.Firefox()
driver.get("Your desired URL goes here...")
#now you can refresh the page!
driver.refresh()
【讨论】:
【参考方案6】:我建议将驱动元素搜索绑定到标签正文,并使用浏览器的刷新命令。
以 OSX 为例
driver.find_element_by_tag_name('body').send_keys(Keys.COMMAND + 'r')
此处的密钥文档:http://selenium-python.readthedocs.org/en/latest/api.html
更新: 以下代码与您的代码非常相似,对我来说很好。
driver = webdriver.Firefox()
driver.get(response.url) #tested in combination with scrapy
time.sleep(3)
driver.refresh()
您确定在刷新之前使用驱动程序正确加载了网页吗?
【讨论】:
即使在 OSX 中,driver.refresh()
也能正常工作。第一个 CMD + r 没有。【参考方案7】:
您可以尝试以下任何一种方法。
方法一:
driver.findElement(By.name("s")).sendKeys(Keys.F5);
方法二:
driver.get(driver.getCurrentUrl());
方法3:
driver.navigate().to(driver.getCurrentUrl());
方法四:
driver.findElement(By.name("s")).sendKeys("\uE035");
【讨论】:
这与python无关,它是被标记的语言 那不是python以上是关于如何刷新已经打开的网页的主要内容,如果未能解决你的问题,请参考以下文章