标签: selenium-firefoxdriver

无法通过selenium web驱动程序中的By.linkText查找元素

  1. 转到http://live.guru99.com/
  2. 点击我的帐户链接
  3. 单击创建帐户链接并填写除电子邮件ID之外的新用户信息.

嗨..以上是我的测试用例.无法为帐户链接创建xpath.

这是我试过的脚本:

WebDriver Driver=new FirefoxDriver();                 
Driver.get("http://live.guru99.com/");
WebElement element=Driver.findElement(By.linkText("My Account"));       
element.click();
Run Code Online (Sandbox Code Playgroud)

如果有人帮助我会很棒.

提前致谢.

selenium selenium-firefoxdriver selenium-webdriver

3
推荐指数
1
解决办法
9433
查看次数

如何从浏览器中删除通知和警报?selenium python 2.7.7

我试图在网页上提交信息,但selenium会抛出此错误:

UnexpectedAlertPresentException:警告文本:此页面要求您确认是否要离开 - 您输入的数据可能无法保存.,>

这不是休假通知; 这是通知的图片 -

在此输入图像描述.

如果我点击进来再也没有显示此通知,我的操作就不会被保存; 有没有办法保存或禁用所有通知?

编辑:我正在使用Firefox.

python selenium python-2.7 selenium-firefoxdriver selenium-webdriver

3
推荐指数
2
解决办法
1万
查看次数

如何使用Selenium选择下拉菜单选项值-Python

我需要从下面的下拉菜单中选择一个元素。

<select class="chosen" id="fruitType" name="fruitType">
    <option value="">Select</option>
    <option value="1">jumbo fruit 1</option>
    <option value="2">jumbo fruit 2</option>
    <option value="3">jumbo fruit 3</option>
    <option value="4">jumbo fruit 4</option>
    <option value="5">jumbo fruit 5</option>
    <option value="8">jumbo fruit 6</option>
</select>
Run Code Online (Sandbox Code Playgroud)

我尝试使用此代码,

driver = webdriver.Firefox()
driver.find_element_by_xpath("//select[@name='fruitType']/option[text()='jumbo fruit 4']").click()
Run Code Online (Sandbox Code Playgroud)

但是它给我带来了错误。我该怎么做?

python selenium selenium-firefoxdriver selenium-webdriver

3
推荐指数
1
解决办法
1万
查看次数

在Selenium webdriver(JAVA)中的eclipse中出现错误消息的空白Firefox窗口

Firefox版本46. Selenium版本:Eclipse中的2.53.0代码:package eezar_test;

import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
public class test_sample {
public static void main(String[] args) {
WebDriver driver = new FirefoxDriver();
driver.get("www.gmail.com");

}

}
Run Code Online (Sandbox Code Playgroud)

Eclipse中生成的错误:

线程"main"中的异常org.openqa.selenium.WebDriverException:目标URL www.gmail.com格式不正确.命令持续时间或超时:620毫秒构建信息:版本:'2.53.0',修订版:'35ae25b',时间:'2016-03-15 16:57:40'系统信息:主机:'admin-PC',ip :'192.168.0.102',os.name:'Windows 7',os.arch:'amd64',os.version:'6.1',java.version:'1.8.0_91'驱动程序信息:org.openqa.selenium. firefox.FirefoxDriver Capabilities [{applicationCacheEnabled = true,rotating = false,handlesAlerts = true,databaseEnabled = true,version = 46.0.1,platform = WINDOWS,nativeEvents = false,acceptSslCerts = true,webStorageEnabled = true,locationContextEnabled = true,browserName =火狐,takesScreenshot =真,javascriptEnabled =真,cssSelectorsEnabled =真}]会话ID:14d90792-c7c9-4828-a2d2-0de6707c86c5在sun.reflect.NativeConstructorAccessorImpl.newInstance0(本机方法)在sun.reflect.NativeConstructorAccessorImpl.newInstance(未知源)org.openqa.selenium.r上java.lang.reflect.Constructor.newInstance(未知来源)的sun.reflect.DelegatingConstructorAccessorImpl.newInstance(未知来源)emote.ErrorHandler.createThrowable(ErrorHandler.java:206)在org.openqa.selenium.remote.ErrorHandler.throwIfResponseFailed(ErrorHandler.java:158)在org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:678) at org.openqa.selenium.remote.RemoteWebDriver.get(RemoteWebDriver.java:316)at eezar_test.test_sample.main(test_sample.java:15)引起:org.openqa.selenium.WebDriverException:目标网址www.gmail.com形式不好.构建信息:版本:'2.53.0',修订版:'35ae25b',时间:'2016-03-15 16:57:40'系统信息:主机:'admin-PC',ip:'192.168.0.102', os.name:'Windows 7',os.arch:'amd64',os.version:'6.1',java.version:'1.8.0_91'驱动程序信息:driver.version:未知.FirefoxDriver.prototype.get(文件:/// C:/Users/Monojit/AppData/Local/Temp/anonymous3216851504162366486webdriver-profile/extensions/fxdriver@googlecode.com/components/driver-component.js:10636)在.DelayedCommand.prototype.executeInternal_ /小时(文件:/// C:/Users/Monojit/AppData/Local/Temp/anonymous3216851504162366486webdriver-profile/extensions/fxdriver@googlecode.com/components/command-processor.js:12661)在.DelayedCommand.prototype.executeInternal_(文件: ///C:/Users/Monojit/AppData/Local/Temp/anonymous3216851504162366486webdriver-profile/extensions/fxdriver@googlecode.com/components/command-processor.js:12666)在.DelayedCommand.prototype.execute/<(文件: /// C:/用户/ Monojit /应用程序数据/本地/温度/ anonymous3216851504162366486webdriver轮廓/ E xtensions/fxdriver@googlecode.com/components/command-processor.js:12608)

selenium selenium-firefoxdriver selenium-webdriver

3
推荐指数
1
解决办法
1873
查看次数

Selenium FirefoxDriver:在不同实例之间共享会话/ Cookie

我有以下场景:

我有一个C#WPF程序,我尝试同时访问不同的网站并从中收集数据.

网站A(www.example.com)有一个登录表单,登录后会显示一些链接,例如www.example.com?redir=abc

我所做的:

  • 启动FirefoxDriver 1
  • 登录
  • 无限循环:收集所有链接和刷新页面

问题是,我在我的项目中的另一个Thread中运行了另一个FirefoxDriver实例2.

在此实例2中,我访问之前收集的链接并想要打开它们.

问题是,为了访问它们(它们是重定向的),我需要再次登录到网站A.当我登录时,实例1上的会话结束,所以我需要再次登录等等,所以有效地实例正在"窃取"彼此的会话.(我想更多地扩展这个实例3,4 ......所以这会使问题更严重).

显然我的问题是实例1和实例2没有共享同一个会话.

我找到解决问题的可能性:

  • 使用相同的FirefoxProfile:尝试过,不工作,仍然不共享会话
  • 使用一个带有2个窗口/标签的实例并使用Selenium ThreadGuard类从两个线程访问它:看起来非常复杂,因为我需要一直在窗口之间切换
  • 使用Selenium Grid:看起来有点过分,我还不知道这对我来说是否正确

因此,我在问,有人建议我应该如何设计这个?

谢谢您的帮助.

c# selenium webdriver selenium-firefoxdriver

2
推荐指数
1
解决办法
2088
查看次数

如何在使用Selenium Webdriver下载excel时在firefox中处理下载弹出窗口

我试图从Firefox和Webdriver下载Excel文件,但我无法处理下载弹出窗口.

单击按钮时,我需要自动下载文件,而不显示弹出窗口.

这是我的代码:

FirefoxProfile firefoxProfile = new FirefoxProfile();
firefoxProfile.setPreference("browser.download.folderList", 2);
firefoxProfile.setPreference("browser.download.manager.showWhenStarting", false);
firefoxProfile.setPreference("browser.download.dir", Constant.Downloaded_Path);
firefoxProfile.setPreference("browser.helperApps.neverAsk.saveToDisk", "text/csv/xls/xlsx");
firefoxProfile.setPreference("browser.helperApps.neverAsk.openFile",
    "text/csv,application/x-msexcel,application/excel,application/x-excel,application/vnd.ms-excel,image/png,image/jpeg,text/html,text/plain,application/msword,application/xml");
firefoxProfile.setPreference("browser.helperApps.alwaysAsk.force", false);
firefoxProfile.setPreference("browser.download.manager.alertOnEXEOpen", false);
firefoxProfile.setPreference("browser.download.manager.focusWhenStarting", false);
firefoxProfile.setPreference("browser.download.manager.useWindow", false);
firefoxProfile.setPreference("browser.download.manager.showAlertOnComplete", false);
firefoxProfile.setPreference("browser.download.manager.closeWhenDone", false);
return firefoxProfile;
Run Code Online (Sandbox Code Playgroud)

但是,上面的代码不起作用.任何人都可以帮忙吗?

java selenium-firefoxdriver selenium-webdriver

2
推荐指数
1
解决办法
3081
查看次数

为什么Firefox需要GeckoDriver?

我今天只是一个简单的问题:

我使用以下代码创建了一个新的selenium项目:

FirefoxDriver driver = new FirefoxDriver();
//ChromeDriver driver = new ChromeDriver();
//InternetExplorerDriver driver = new InternetExplorerDriver();
Run Code Online (Sandbox Code Playgroud)

Chrome和IE开箱即用,但随着Firefox的推出:

geckodriver.exe文件不存在于当前目录或PATH环境变量的目录中.该驱动程序可以从https://github.com/mozilla/geckodriver/releases下载.

为什么只有Firefox我们必须下载/配置这个驱动程序?

c# selenium selenium-firefoxdriver geckodriver

2
推荐指数
1
解决办法
2280
查看次数

给定xpath表达式“ // div [contains(@ class ='loader-overlay')]”对于Selenium无效

从2.53版升级到3.14版后,Selenium说

Given xpath expression "//div[contains(@class='loader-overlay')]" is invalid

这段代码

System.setProperty("webdriver.gecko.driver", "/path/to/geckodriver/v0.23.0");
FirefoxOptions options = new FirefoxOptions();
//...
driver = new FirefoxDriver(options);
WebElement loaderElement = driver.findElement(By.xpath("//div[contains(@class='loader-overlay')]"));
Run Code Online (Sandbox Code Playgroud)

产生这个错误

org.openqa.selenium.InvalidSelectorException: Given xpath expression "//div[contains(@class='loader-overlay')]" is invalid: [Exception... "<no message>"  nsresult: "0x8060000d (<unknown>)"  location: "JS frame :: chrome://marionette/content/element.js :: element.findByXPath :: line 401"  data: no]
For documentation on this error, please visit: http://seleniumhq.org/exceptions/invalid_selector_exception.html
Build info: version: '3.14.0', revision: 'aacccce0', time: '2018-08-02T20:19:58.91Z'
System info: host: 'xxx', ip: '10.233.112.79', os.name: 'Linux', os.arch: 'amd64', os.version: '4.4.0-116-generic', java.version: '1.8.0_181' …
Run Code Online (Sandbox Code Playgroud)

selenium xpath selenium-firefoxdriver geckodriver

2
推荐指数
1
解决办法
246
查看次数

如何在 Selenium 中禁用保存密码弹出窗口?

我正在使用适用于 Java 的 Selenium 版本 3.141.59,我想在初始化 Chrome 和 Firefox 的驱动程序时禁用密码弹出窗口。

我正在使用 Options 语法,因为 DesiredCapativity 替代方案现已弃用。我的代码看起来像这样,但它不起作用:

  • 火狐浏览器
FirefoxOptions options = new FirefoxOptions();
options.addPreference("signon.rememberSignons", false);
webDriver = new FirefoxDriver(options);
Run Code Online (Sandbox Code Playgroud)
  • 铬合金
ChromeOptions chromeOptions = new ChromeOptions();
chromeOptions.setExperimentalOption("credentials_enable_service", false);
chromeOptions.setExperimentalOption("profile.password_manager_enabled", false);
webDriver = new ChromeDriver(chromeOptions);
Run Code Online (Sandbox Code Playgroud)

在创建驱动程序之前如何将该选项添加到选项对象?

java selenium selenium-chromedriver selenium-firefoxdriver

2
推荐指数
1
解决办法
1万
查看次数

webdriver Firefox 打开但出现密钥错误:“sessionid”

我正在使用 python 版本 2.7.9 :: Anaconda 2.2.0(64 位)

我的代码如下:

from selenium import webdriver 
from selenium.webdriver.firefox.firefox_binary import FirefoxBinary

binary = FirefoxBinary("C:\\Program Files (x86)\\Mozilla Firefox\\firefox.exe")
fp = webdriver.FirefoxProfile()
driver = webdriver.Firefox(firefox_binary=binary, firefox_profile=fp)

driver.get("www.google.com")
Run Code Online (Sandbox Code Playgroud)

当我从 DOS 执行它时,出现以下错误:

Traceback (most recent call last):
File "autoRadiatorFirefox.py", line 6, in <module>
driver = webdriver.Firefox(firefox_binary=binary, firefox_profile=fp)
File "C:\Users\eripflo\AppData\Local\Continuum\Anaconda\lib\site-
packages\selenium\webdriver\firefox\webdriver.py", line 145, in __init__
keep_alive=True)
File "C:\Users\eripflo\AppData\Local\Continuum\Anaconda\lib\site-
packages\selenium\webdriver\remote\webdriver.py", line 92, in __init__
self.start_session(desired_capabilities, browser_profile)
File "C:\Users\eripflo\AppData\Local\Continuum\Anaconda\lib\site-
packages\selenium\webdriver\remote\webdriver.py", line 180, in start_session
self.session_id = response['sessionId']
KeyError: 'sessionId'
Run Code Online (Sandbox Code Playgroud)

我还尝试了链接中所述的以下解决方案 …

selenium python-2.7 selenium-firefoxdriver selenium-webdriver

1
推荐指数
1
解决办法
1404
查看次数