【问题标题】: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,那么页面会按应有的方式刷新。

标签: python selenium-webdriver refresh


【解决方案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
            猜你喜欢
            • 2017-04-15
            • 1970-01-01
            • 2019-06-19
            • 2021-10-15
            • 2020-04-15
            • 2013-06-19
            • 1970-01-01
            • 1970-01-01
            • 2017-06-08
            相关资源
            最近更新 更多