【问题标题】:How to close all windows that Selenium opens?如何关闭 Selenium 打开的所有窗口?
【发布时间】:2011-03-25 16:44:02
【问题描述】:

我现在正在使用 Selenium RC 进行一些测试。而且我使用的驱动是python。

但是现在,我遇到了一个问题,那就是:每次 Selenium RC 运行时,打开一个 url,它会打开 2 个窗口,一个用于记录,另一个用于显示 HTML 内容。但我无法在脚本中全部关闭它们。

这是我的脚本:

#!/usr/bin/env python
#-*-coding:utf-8-*-
from selenium import selenium

def main():
    sel = selenium('localhost', 4444, '*firefox', 'http://www.sina.com.cn/')
    sel.start()
    try:
        sel.open('http://www.sina.com.cn/')
    except Exception, e:
        print e
    else:
        print sel.get_title()
    sel.close()
    sel.stop()

if __name__ == '__main__':
    main()

这很容易理解。我真正想要的是关闭硒打开的所有窗口。我试过 close() 和 stop(),但它们都不起作用。

【问题讨论】:

  • Selenium RC 中是否有任何错误?
  • 只有这看起来像一个错误:17:07:47.894 警告 - 注意:'/usr/bin/firefox-bin':文件是脚本文件,不是真正的可执行文件。浏览器环境不再完全受 RC 控制

标签: python selenium selenium-rc


【解决方案1】:

我可能会建议用 python 编写一个系统命令来关闭 firefox 窗口

布西耶

【讨论】:

    【解决方案2】:

    我已经解决了这个问题。 发生这种情况是因为我安装了 firefox-bin 而不是 firefox。 现在我已经删除了 firefox-bin 并安装了 firefox,它现在可以工作了。 stop() 将关闭 selenium 打开的所有窗口。

    感谢您的提醒AutomatedTester

    【讨论】:

      【解决方案3】:

      我有一个类似的情况,我的程序在抓取网页时打开了许多窗口。这是一个示例代码:

      #!/usr/bin/python
      import webbrowser
      from selenium import webdriver
      from selenium.webdriver.support.ui import WebDriverWait
      from selenium.common.exceptions import NoSuchElementException
      
      driver = webdriver.Firefox()
      print "Browser fired-up!"
      driver.get("https://www.something.com/")
      driver.implicitly_wait(5)
      
      while True:
      
          try:
              playlink = driver.find_element_by_xpath("/html/body/div[2]/div[1]/div/a")
              playlink.click()
              time.sleep(3)
          except NoSuchElementException: 
              print "playlink Element not found "
          else:
              backbutton = driver.find_element_by_id("back-to-bing-text")
              backbutton.click()
      
          try:
              quizlink = driver.find_element_by_xpath("/html/body/div[2]/div[1]/div[1]/ul/li[1]/a/span/span[1]")
              quizlink.click()
          except NoSuchElementException: 
              print "quiz1 Element not found "
          else:
              print "quiz1 clicked"
      
          driver.quit()   
      

      “driver.close()”困扰了我一个星期,因为我相信它会关闭所有窗户。 “driver.quit()”是终止所有进程并关闭所有窗口。

      【讨论】:

        猜你喜欢
        • 2020-08-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-08-29
        • 2019-11-23
        • 2019-06-12
        • 1970-01-01
        相关资源
        最近更新 更多