2015-02-11 73 views
6

我只想刷新已打开的网页Selenium如何刷新已打开的网页

它总是打开一个新的浏览器窗口。

我在做什么错了?

from selenium import webdriver 
import urllib 
import urllib2 

driver = webdriver.Firefox() 
driver.refresh() 
+4

您是否尝试过使用'driver.navigate()。refresh()'? – HavelTheGreat 2015-02-11 15:03:54

+0

您显示的代码不会重现您要报告的问题。 'webdriver.Frirefox()'这行会启动一个新的浏览器。但'driver.refresh()'不会对你显示的代码做任何事情。如果你添加一个'driver.get()'调用来加载一个好的URL,那么页面会按照它的要求刷新。 – Louis 2015-02-11 17:54:52

回答

3

您可以尝试以下方法中的任何一种。

方法1:

driver.findElement(By.name("s")).sendKeys(Keys.F5); 

方法2:

driver.get(driver.getCurrentUrl()); 

方法3:

driver.navigate().to(driver.getCurrentUrl()); 

方法4:

driver.findElement(By.name("s")).sendKeys("\uE035"); 
+3

这不属于python,它是标记为 – 2017-06-23 22:09:09

+0

的语言那不是python – bntzio 2018-01-19 14:57:02

5

我建议将驱动程序元素搜索绑定到标签主体并使用浏览器的刷新命令。

在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() 

您确定在刷新之前正确地加载驱动程序的网页吗?