Selenium WebDriver.get(url)未打开url 从selenium导入webdriver 从selenium.common.exceptions导入TimeoutException 从selenium.webdriver.support.ui导入WebDriverWait#从2.4.0开始提供 导入时间 #创建Firefox驱动程序的新实例 driver=webdriver.Firefox() #转到谷歌主页 驱动程序。获取(“http://www.google.com")
这会打开一个Firefox窗口,但不会打开urlSelenium WebDriver.get(url)未打开url 从selenium导入webdriver 从selenium.common.exceptions导入TimeoutException 从selenium.webdriver.support.ui导入WebDriverWait#从2.4.0开始提供 导入时间 #创建Firefox驱动程序的新实例 driver=webdriver.Firefox() #转到谷歌主页 驱动程序。获取(“http://www.google.com"),selenium,webdriver,Selenium,Webdriver,这会打开一个Firefox窗口,但不会打开url 我有一个代理服务器(但地址栏不显示传递的url) 我有两个Firefox配置文件 1或2会是一个问题吗?如果是,那么我该如何解决它?请查看以下方法: 请仔细阅读“实例化WebDriver”一节 我认为您缺少以下代码行: wait = new WebDriverWait(driver, 30); 介于两者之间 driver = webdriver.Firefox(); 及 我还没有测试过,因为我现在没有使用硒。我熟悉Selenium 1.x。请
1或2会是一个问题吗?如果是,那么我该如何解决它?请查看以下方法: 请仔细阅读“实例化WebDriver”一节 我认为您缺少以下代码行:
wait = new WebDriverWait(driver, 30);
介于两者之间
driver = webdriver.Firefox();
及
我还没有测试过,因为我现在没有使用硒。我熟悉Selenium 1.x。请尝试以下代码
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
WebDriver DRIVER = new FirefoxDriver();
DRIVER.get("http://www.google.com");
这是一个好主意我在Ubuntu12.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
@尼拉吉
我已经解决了这个问题,但我不确定你是否也是同样的原因
一般来说,我的问题是由一些权限问题引起的
我试图将我的整个项目转移到~/:
mv xxx/ ~/
然后我改变了,给它777许可:
chmod -R 777 xxx/
我不熟悉linux权限,所以我这样做只是为了确保我有执行程序的权限
即使您没有权限,selenium程序也不会提示您。
所以,祝你好运。我遇到了保存问题。我假设您在启动python脚本之前确保java服务器正在运行?java服务器可以从下载
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")));
当我使用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的socket UTIL(位于:webdriver/common/utils.py中)正试图通过“localhost”或127.0.0.1进行连接:
socket_.connect(("localhost", port))
一旦我将“localhost”更改为“”(用空单引号表示所有本地地址),它就开始工作了。现在,utils.py的前一行如下所示:
socket_.connect(('', port))
我正在使用MacOs和Firefox22。在发布本文时,Firefox的最新版本是24,但我听说该版本存在一些安全问题,可能会阻止selenium的一些功能(我还没有验证)。无论如何,出于这个原因,我使用的是旧版本的Firefox。这对我来说很有效(在Ubuntu Desktop 11.04上用Python-2.7进行了测试):
我已经解决了这个问题 如果您的jar文件比最新版本旧,并且浏览器已更新为最新版本,请下载:
- selenium网站上的最新jar文件,以及
- 最新的
geckodriver.exe
pip install -U selenium
操作系统:windows Python 2.7
由于您提到使用代理,请按照此处给出的答案尝试使用代理设置firefox驱动程序a在这个问题上花费了大量时间,最终发现selenium 2.44无法使用节点版本0.12。
使用节点版本0.10.38如果您在windows计算机中使用它,请检查您安装的selenium webdriver是否为最新版本。我刚刚发现我的webdriver是旧的,它只打开了firefox,但无法处理get函数
webdriver的更新解决了此问题您需要首先将url声明为sting,如下所示:
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);
我也有类似的问题。我所要做的就是删除现有的geckodriver.exe并下载其最新版本。您可以在此处找到最新版本。我在发布不带协议的URL(如
localhost:4200
)时遇到了相同的错误,而不是同时指定协议的正确URL(例如)
Google Chrome在没有协议的情况下可以正常工作(默认使用http),但是Firefox会因为这个错误而崩溃。我也遇到了类似的问题,并声明URL的字符串对我有效。:)
package Chrome\u示例;
导入org.openqa.selenium.WebDriver;
导入org.openqa.selenium.chrome.ChromeDriver;
公开课推出{
公共静态void main(字符串[]args){
System.setProperty(“webdriver.chrome.driver”,“C:\\Users\\doyes\\Downloads\\chromedriver\u win324\\chromedriver.exe”);
字符串URL=”http://www.google.com";
WebDriver驱动程序=新的ChromeDriver();
获取(URL);
}
}
我也遇到了同样的问题,但使用了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()
检查浏览器版本并执行以下操作 1。从谷歌下载Firefox/Chrome网络驱动程序
2。将webdriver放在Chrome的目录中。我在尝试Chr时遇到了保存问题
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);
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()