【问题标题】:Selenium WebDriver.get(url) does not open the URLSelenium WebDriver.get(url) 不打开 URL
【发布时间】:2011-11-12 22:23:47
【问题描述】:
from selenium import webdriver
from selenium.common.exceptions import TimeoutException
from selenium.webdriver.support.ui import WebDriverWait # available since 2.4.0
import time


# Create a new instance of the Firefox driver
driver = webdriver.Firefox()


# go to the google home page
driver.get("http://www.google.com")

这会打开一个 Firefox 窗口,但不会打开一个 url。

  1. 我有代理服务器(但是地址栏没有显示传过来的url)
  2. 我有两个 Firefox 配置文件。

1 或 2 会是个问题吗?如果是,那我该如何解决呢?

【问题讨论】:

标签: selenium webdriver


【解决方案1】:

这是一个defect of Selenium
我在代理后面的 Ubuntu 12.04 中遇到了同样的问题。

问题在于处理代理排除不正确。默认的 Ubuntu 排除项位于 no_proxy 环境变量中:

no_proxy=localhost,127.0.0.0/8

但似乎 /8 掩码不适用于硒。要解决此问题,只需将 no_proxy 更改为以下内容:

no_proxy=localhost,127.0.0.1

在运行 python 脚本之前删除代理设置也有帮助:

http_proxy= python script.py

【讨论】:

  • 你能提供更多关于如何设置 no_proxy 的信息吗?您将其称为环境变量,但我尝试将其设置为export no_proxy=localhost,127.0.0.1,但没有任何作用。我误解了你的指示?
  • 对我没有帮助,MAC
【解决方案2】:

我遇到了完全相同的问题,浏览了一段时间后,我才知道这基本上是FireFox和selenium之间的版本兼容性问题。我有最新的 FireFox,但我导入的 Selenium 较旧,这导致了问题。 升级 selenium

后问题得到解决
pip install -U selenium

操作系统:Windows Python 2.7

【讨论】:

  • 您介意分享您在打开的浏览器中检索当前 URL 的方法吗?我正在尝试获取重定向 URL,但使用 print driver.current_url 只会打印我第一次打开浏览器时传递的原始 URL
  • 或升级 mozilla :)
【解决方案3】:

我已经解决了这个问题。

如果您的 jar 文件比最新版本旧并且浏览器已更新到最新版本,请下载:

【讨论】:

  • 我试过这个并升级到 Selenium 3.0.1,但仍然是同样的问题。
【解决方案4】:

@Neeraj

我已经解决了这个问题,但我不确定你是否是同样的原因。

总的来说,我的问题是由一些权限问题引起的。

我试图将我的整个项目移动到 ~/:

mv xxx/ ~/

然后我更改给它 777 权限:

chmod -R 777 xxx/

我不熟悉 linux 权限,所以我这样做只是为了确保我有执行程序的权限。

即使你没有权限,selenium 程序也不会提示你。

那么,祝你好运。

【讨论】:

  • 这并没有完全解决我的问题,但它确实让我走上了正轨。当我安装 selenium-webdriver gem 时,我使用了sudo gem install selenium-webdriver。然后我在不使用 sudo 的情况下重新安装了它,它解决了我的问题。确实,如果出现权限问题,selenium 会静默失败。
  • 您永远不应该使用 777 权限。非常危险。
【解决方案5】:
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;

WebDriver driver = new FirefoxDriver();
driver.manage().timeouts().implicitlyWait(30,TimeUnit.SECONDS);
driver.get("http://www.google.com");

OR

import org.openqa.selenium.support.ui.ExpectedConditions;

WebDriverWait wait = new WebDriverWait(driver,30);
driver.get("http://www.google.com");
//hplogo is the id of Google logo on google.com
wait.until(ExpectedConditions.presenceOfElementLocated(By.id("hplogo")));

【讨论】:

    【解决方案6】:

    A在这个问题上花了很多时间,终于发现selenium 2.44不能与node版本0.12一起工作。 使用节点版本 0.10.38

    【讨论】:

      【解决方案7】:

      我遇到了类似的问题。我所要做的就是删除现有的 geckodriver.exe 并下载其最新版本。你可以在这里找到最新版本https://github.com/mozilla/geckodriver/releases

      【讨论】:

        【解决方案8】:

        当我发出一个没有协议的 URL(如 localhost:4200)而不是一个正确的同时指定协议的 URL(如 http://localhost:4200)时,我得到了同样的错误。

        谷歌浏览器在没有协议的情况下也能正常工作(它采用 http 作为默认协议),但 Firefox 因此错误而崩溃。

        【讨论】:

          【解决方案9】:

          我遇到了类似的问题,并且为 URL 说明字符串对我有用。 :)

          package Chrome_Example;
          
          import org.openqa.selenium.WebDriver;
          import org.openqa.selenium.chrome.ChromeDriver;
          
          public class Launch_Chrome {
          
              public static void main(String[] args) {
          
                  System.setProperty("webdriver.chrome.driver", "C:\\Users\\doyes\\Downloads\\chromedriver_win324\\chromedriver.exe");
                  String URL = "http://www.google.com";
                  WebDriver driver = new ChromeDriver();
                  driver.get(URL);
              }
          
          }
          

          【讨论】:

            【解决方案10】:

            我遇到了同样的问题,但使用的是 Chrome。

            使用以下步骤解决了它

            1. 从 Google 安装 Firefox/Chrome 网络驱动程序
            2. 将 webdriver 放到 Chrome 的目录中。

            这是代码,它运行良好

            from selenium import webdriver
            
            class InstaBot(object):
                def __init__(self):
                    self.driver=webdriver.Chrome("C:\Program 
                    Files(x86)\Google\Chrome\Application\chromedriver.exe")# make sure 
                                                                  #it is chrome driver 
                    self.driver.get("https://www.wikipedia.com")
                    
                    
            InstaBot()
            

            【讨论】:

              【解决方案11】:

              检查您的浏览器版本并执行以下操作。

              1.从 Google 下载 Firefox/Chrome 网络驱动程序

              2。将 webdriver 放在 Chrome 的目录中。

              【讨论】:

                【解决方案12】:

                我在尝试使用 Chrome 时遇到了保存问题。我终于将我的 chromedrivers.exe 放在与我的项目相同的位置。这为我解决了问题。

                【讨论】:

                  【解决方案13】:

                  根据您的浏览器更新您的驱动程序。

                  在我的 chrome 中,

                  1. 从这里为您的 chrome 下载最新的驱动程序:https://chromedriver.chromium.org/downloads 通过浏览器检查 chrome 版本:chrome://settings/help

                  2. 在初始化您的driver 时, 使用driver = webdriver.Chrome(executable_path="path/to/downloaded/driver")

                  【讨论】:

                    【解决方案14】:

                    请看一下这个 HowTo:http://www.qaautomation.net/?p=373 仔细查看“实例化 WebDriver”部分

                    我认为您缺少以下代码行:

                    wait = new WebDriverWait(driver, 30);
                    

                    放在中间

                    driver = webdriver.Firefox();
                    

                    driver.getUrl("http://www.google.com");
                    

                    还没有测试,因为我目前没有使用 Selenium。我熟悉 Selenium 1.x。

                    【讨论】:

                    • 我也试过这个。我很茫然。它只是不打开任何网址。
                    • 也许你有错字?在您的问题中,您正在写:“driver.get("http:...")",但它必须是 "driver.getURL("http:...")
                    【解决方案15】:

                    我遇到了保存问题。我假设您在启动 python 脚本之前确保您的 java 服务器正在运行? java服务器可以从selenium's download list下载。

                    当我使用 netstat 评估开放端口时,我注意到 java 服务器没有在特定的 "localhost" 主机上运行:

                    我启动服务器的时候发现端口号是4444

                    $ java -jar selenium-server-standalone-2.35.0.jar 
                    Sep 24, 2013 10:18:57 PM org.openqa.grid.selenium.GridLauncher main
                    INFO: Launching a standalone server
                    22:19:03.393 INFO - Java: Apple Inc. 20.51-b01-456
                    22:19:03.394 INFO - OS: Mac OS X 10.8.5 x86_64
                    22:19:03.418 INFO - v2.35.0, with Core v2.35.0. Built from revision c916b9d
                    22:19:03.681 INFO - RemoteWebDriver instances should connect to: http://127.0.0.1:4444/wd/hub
                    22:19:03.683 INFO - Version Jetty/5.1.x
                    22:19:03.683 INFO - Started HttpContext[/selenium-server/driver,/selenium-server/driver]
                    22:19:03.685 INFO - Started HttpContext[/selenium-server,/selenium-server]
                    22:19:03.685 INFO - Started HttpContext[/,/]
                    22:19:03.755 INFO - Started org.openqa.jetty.jetty.servlet.ServletHandler@21b64e6a
                    22:19:03.755 INFO - Started HttpContext[/wd,/wd]
                    22:19:03.765 INFO - Started SocketListener on 0.0.0.0:4444
                    

                    我可以通过在终端中运行以下命令来查看我的监听端口及其端口号(-n 选项):

                    $netstat -an | egrep 'Proto|LISTEN'
                    

                    这让我得到以下输出

                    Proto Recv-Q Send-Q  Local Address          Foreign Address        (state)    
                    
                    tcp46      0      0  *.4444                 *.*                    LISTEN  
                    

                    我意识到这可能是个问题,因为 selenium 的套接字实用程序位于:webdriver/common/utils.py 正在尝试通过“localhost”或 127.0.0.1 进行连接:

                    socket_.connect(("localhost", port))
                    

                    一旦我将“localhost”更改为 ''(空单引号表示所有本地地址),它就开始工作了。所以现在,utils.py 的前一行看起来像这样:

                    socket_.connect(('', port))
                    

                    我正在使用 MacOs 和 Firefox 22。在本文发布时,Firefox 的最新版本是 24,但我听说该版本存在一些安全问题,可能会阻止 selenium 的某些功能(我尚未验证这一点) .无论如何,出于这个原因,我使用的是旧版本的 Firefox。

                    【讨论】:

                      【解决方案16】:

                      这对我有用(在带有 Python-2.7 的 Ubuntu Desktop 11.04 上测试):

                      from selenium import webdriver
                      
                      driver = webdriver.Firefox()
                      driver.get("http://www.stackoverflow.com")
                      

                      【讨论】:

                        【解决方案17】:

                        由于您提到您使用代理,请尝试按照此处给出的答案proxy selenium python firefox 使用代理设置 Firefox 驱动程序

                        【讨论】:

                          【解决方案18】:

                          试试下面的代码

                          import org.openqa.selenium.WebDriver;
                          import org.openqa.selenium.firefox.FirefoxDriver;
                          
                          WebDriver DRIVER = new FirefoxDriver();
                          DRIVER.get("http://www.google.com");
                          

                          【讨论】:

                            【解决方案19】:

                            您需要先将 url 声明为一个字符串,如下所示:

                            from selenium import webdriver
                            from selenium.common.exceptions import TimeoutException
                            from selenium.webdriver.support.ui import WebDriverWait # available since 2.4.0
                            import time
                            
                            
                            # Create a new instance of the Firefox driver
                            
                            String URL = "http://www.google.com";
                            
                            driver = webdriver.Firefox()
                            
                            
                            # go to the google home page
                            driver.get(URL);
                            

                            【讨论】:

                            • 没什么大不了的。此外,它没有帮助,至少在这种情况下。 -1
                            猜你喜欢
                            • 1970-01-01
                            • 1970-01-01
                            • 2020-09-01
                            • 1970-01-01
                            • 1970-01-01
                            • 2013-09-17
                            • 1970-01-01
                            • 1970-01-01
                            • 1970-01-01
                            相关资源
                            最近更新 更多