标签: selenium-firefoxdriver

使用Firefox运行Selenium WebDriver测试不再适用于Ubuntu

在我的Ubuntu工作站上本地运行使用Firefox的Selenium(Webdriver)测试不再有效.

完全相同的设置之前工作,但我认为Firefox在某些时候升级(现在从Ubuntu包中升级到16.0.2 16.0.2+build1-0ubuntu0.11.04.1),之后它停止工作.在正常使用中,Firefox工作正常.

使用Webdriver,当我运行一个测试用例(通过我的IDE)时,会打开一个空的Firefox窗口,但测试无法启动.45秒后,它会超时,并显示以下错误消息:

org.openqa.selenium.firefox.NotConnectedException: Unable to connect to host 127.0.0.1 on port 7055 after 45000 ms. Firefox console output:
*** LOG addons.xpi: startup
*** LOG addons.xpi: Ignoring file entry whose name is not a valid add-on ID: /tmp/anonymous5012217980260937474webdriver-profile/extensions/webdriver-staging
*** LOG addons.xpi: checkForChanges
*** LOG addons.xpi-utils: Opening database
*** LOG addons.xpi: Add-on {2204c510-88f3-11db-b606-0800200c9a66} modified in app-profile
*** LOG addons.xpi: Add-on yslow@yahoo-inc.com modified in app-profile
*** LOG addons.xpi: Add-on {02450954-cdd9-410f-b1da-db804e18c671} modified in app-profile
*** LOG addons.xpi: Add-on {c45c406e-ab73-11d8-be73-000a95be3b12} …
Run Code Online (Sandbox Code Playgroud)

java firefox selenium webdriver selenium-firefoxdriver

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

WebDriver - “让我保持登录状态”

我正在测试一个需要登录的应用程序。当我单击“保持登录”按钮时使用 SafariDriver,每个创建的新 SafariDriver 实例都会按预期自动登录;但是当我使用 FirefoxDriver 或 ChromeDriver 时,我每次都被要求提供我的凭据,就好像我以前从未使用该浏览器登录过该站点(当我手动和使用 webdriver 时)。是否需要启用某些设置才能让 FireFox 和 Chrome 保持登录状态?

selenium-chromedriver selenium-firefoxdriver selenium-webdriver

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

在Firefox中处理下载确认弹出/对话框

我有一个上传,压缩和下载pdf文件的测试.除下载部分外,一切正常.当我们点击下载时,我无法获得如何处理Firefox中的确认弹出/保存或打开文件对话框.我尝试修改firefox配置但仍然无法解决它.有人可以帮忙吗?

FirefoxProfile profile = new FirefoxProfile();
        profile.setPreference("browser.download.folderList", 2);
        profile.setPreference("browser.download.manager.showWhenStarting", false);
        profile.setPreference("browser.download.dir", "C:\\Users\\Sahil\\Downloads\\");
        profile.setPreference("browser.helperApps.neverAsk.openFile","application/pdf");
        profile.setPreference("browser.helperApps.neverAsk.saveToDisk","application/pdf");
        profile.setPreference("browser.helperApps.alwaysAsk.force", false);
        profile.setPreference("browser.download.manager.alertOnEXEOpen", false);
        profile.setPreference("browser.download.manager.focusWhenStarting", false);
        profile.setPreference("browser.download.manager.useWindow", false);
        profile.setPreference("browser.download.manager.showAlertOnComplete", false);
        profile.setPreference("browser.download.manager.closeWhenDone", false);

        profile.setPreference("browser.download.manager.useWindow", false);
        profile.setPreference("browser.download.manager.showWhenStarting", false);
        profile.setPreference("services.sync.prefs.sync.browser.download.manager.showWhenStarting", false);
      , 0  profile.setPreference("pdfjs.disabled", true);
     WebDriver driver=new FirefoxDriver(profile);   
    driver.get("http://www.ilovepdf.com/compress_pdf");
    driver.findElement(By.id("pickfiles")).click();
    Runtime.getRuntime().exec("C:\\Users\\Sahil\\Documents\\Au\\Second.exe");
    WebDriverWait wait=new WebDriverWait(driver, 100);
    WebElement element1=wait.until(ExpectedConditions.elementToBeClickable(By.id("uploadfiles")));
    element1.click();

    WebElement element=wait.until(ExpectedConditions.presenceOfElementLocated(By.cssSelector("a#download")));
    element.click();
Run Code Online (Sandbox Code Playgroud)

testng selenium selenium-firefoxdriver selenium-webdriver

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

Selenium xpath没有这样的元素异常,即使它在firepath中工作

这是我使用Firebug检查元素时的样子

在此输入图像描述

当我在xpath中尝试相同的语法时,它选择结果页面2.我在selenium IDE中尝试了相同的方法并单击了find,它在执行代码时选择结果页面2.我正在接受No Such Element异常

Xpath语法: //a[contains(@href,'/jobs?q=qa+engineer&l=Renton%2C+WA&start=10')]/span[contains(@class,'pn')][text()='2']

public void jobSearch(){
        WebDriver driver= new FirefoxDriver();
        driver.get("https://www.indeed.com");
        driver.findElement(By.id("what")).sendKeys("QA Engineer");
        driver.findElement(By.id("where")).clear();
        driver.findElement(By.id("where")).sendKeys("Seattle,WA");
        driver.findElement(By.id("fj")).click();
        driver.manage().timeouts().implicitlyWait(25, TimeUnit.SECONDS);

        driver.findElement(By.xpath("//a[contains(@href,'/jobs?q=qa+engineer&l=Renton%2C+WA&start=10')]/span[contains(@class,'pn')][text()='2']")).click();
Run Code Online (Sandbox Code Playgroud)

感谢您的宝贵时间和宝贵的建议.

selenium xpath selenium-firefoxdriver selenium-webdriver

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

如何在Selenium 3.1.0中设置ImplicitWait

升级后,Selenium WebDriver 3.1.0我收到了警告

driver.Manage().Timeouts().ImplicitlyWait(TimeSpan.FromSeconds(30));
Run Code Online (Sandbox Code Playgroud)

警告11'OpenQA.Selenium.ITimeouts.SetScriptTimeout(System.TimeSpan)'已废弃:'此方法将在以后的版本中删除.请改为设置AsynchronousJavaScript属性.

所以我改成了

driver.Manage().Timeouts().ImplicitWait = TimeSpan.FromSeconds(30);
Run Code Online (Sandbox Code Playgroud)

它运行良好ChromeDriver,但是当我尝试FireFoxDriver在此行上测试失败时,抛出异常

结果消息:System.InvalidOperationException:缺少'type'参数(IndexOutOfBounds)结果StackTrace:在OpenQA.Selenium的OpenQA.Selenium.Remote.RemoteWebDriver.UnpackAndThrowOnError(响应errorResponse).Remote.RemoteWebDriver.Execute(String driverCommandToExecute,Dictionary`2参数)OpenQA.Selenium.Remium.Selenium.Remote.Remote给出的OpenQA.Selenium.Remote.RemoteWebDriver.InternalExecute(String driverCommandToExecute,Dictionary'2参数).在OpenQA.Selenium.Remote.RemoteTimeouts.ExecuteSetTimeout(String timeoutType,TimeSpan timeToWait).(TimeSpan值) )在OpenQA.Selenium.Support.Events.EventFiringWebDriver.EventFiringTimeouts.set_ImplicitWait(TimeSpan value)

怎么解决这个?

c# selenium selenium-firefoxdriver selenium-webdriver

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

使用selenium启动firefox遭受KeyError:'sessionId'

在此输入图像描述

当我使用selenium启动firefox时,它遇到了这样的问题.我只是写了一个简单的演示来测试,失败了.

python-3.x selenium-firefoxdriver selenium-webdriver

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

Firefox 无法使用 selenium 网格

我想在多台机器上配置多个 Firefox 浏览器来执行并行测试。

提前致谢。

Firefox 版本: 60.0.1
Selenium Firefox 驱动程序: 3.7.1
Geckdriver 版本: v0.19.0

当我触发 Firefox(非并行)时,它工作正常。JAVA代码如下:

        System.setProperty("webdriver.gecko.driver","C:\\Fm2\\Try_Browsers\\Browsers\\drivers\\geckodriver_19.exe");
        WebDriver driver = new FirefoxDriver();
        driver.get("https://www.google.com/");
        driver.close();     
Run Code Online (Sandbox Code Playgroud)

并行浏览的代码/设置我这样做了,但它不起作用

我在不同的bat文件中设置了网格和节点:
HUb设置:
java -jar selenium-server-standalone-3.1.0.jar -port 4444 -role hub
节点设置:
java -Dwebdriver.gecko.driver=./geckodriver_19。 exe -jar selenium-server-standalone-3.1.0.jar -port 5557 -role node -hub http://localhost:4444/grid/register -browser“browserName=firefox,maxInstances=10,platform=ANY,seleniumProtocol=网络驱动程序”

使用远程驱动程序执行 Firefox 的 JAVA 代码

    System.setProperty("webdriver.gecko.driver","C:\\Fm2\\Try_Browsers\\Browsers\\drivers\\geckodriver.exe");
    DesiredCapabilities cap = DesiredCapabilities.firefox();
    cap.setBrowserName("firefox"); 
    cap.setPlatform(Platform.ANY);              
    WebDriver driver = new RemoteWebDriver(new URL("http://localhost:4444/wd/hub"), cap);   
    driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
    driver.get("https://www.google.com/");
    driver.close(); 
Run Code Online (Sandbox Code Playgroud)

Eclipse 控制台错误:

Exception in thread "main" org.openqa.selenium.SessionNotCreatedException: Unable to create …
Run Code Online (Sandbox Code Playgroud)

selenium selenium-grid selenium-firefoxdriver selenium-webdriver remotewebdriver

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

我怎样才能从班上开始构造函数?

我有这个问题,这让我发疯,我有这个课

    package Test;

import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;

public class Firefox {

    String keyFirefox = "webdriver.gecko.driver";
    String valueFirefox = "...path/geckodriver.exe";

    public Firefox(){
        System.setProperty(keyFirefox, valueFirefox);
    }

    WebDriver Firefox = new FirefoxDriver();
}
Run Code Online (Sandbox Code Playgroud)

在我的主类中,我实例化前一个类,可以毫无问题地访问属性

package Test;


public class EntryPoint {

    public static void main(String[] args) {


        Firefox firefoxBrowser = new Firefox();
        firefoxBrowser.Firefox.get("https://www.amazon.com.mx/");


    }

}
Run Code Online (Sandbox Code Playgroud)

但是当它编译时它会给我一个错误:

线程"main"中的异常java.lang.IllegalStateException:驱动程序可执行文件的路径必须由webdriver.gecko.driver系统属性设置; 有关更多信息,请参阅https://github.com/mozilla/geckodriver.最新版本可以从https://github.com/mozilla/geckodriver/releases下载

谢谢!

java selenium selenium-firefoxdriver selenium-webdriver

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

Python:Selenium:find_elements_by_xpath最多10个

因此,我现在有一个看起来像这样的工作代码;

            if browser.find_elements_by_xpath("//div[contains(@class, 'dealspg_item_cell')]"):
                snipes = browser.find_elements_by_xpath("//div[contains(@class, 'dealspg_item_cell')]")
            else:
                print "Cant find snipes.. Retrying..."
                browser.get("https://www.rolimons.com/deals")
                time.sleep(2)
                print "Reloaded browser... Retrying..."
                if browser.find_elements_by_xpath("//div[contains(@class, 'dealspg_item_cell')]"):
                    snipes = browser.find_elements_by_xpath("//div[contains(@class, 'dealspg_item_cell')]")
                else:
                    print "Shutting down engine..."
                    browser.quit()
                    checking = False
                    print "Restarting script..."
                    break
Run Code Online (Sandbox Code Playgroud)

这一切都很好。它有60个元素。现在我只需要第一个10。如何使它只有find_elements_by_xpath10个限制?

有什么办法吗?

谢谢!

====编辑====

此代码目前需要4秒钟。我希望通过将最大值设置为10来减少此时间。

python selenium python-3.x selenium-firefoxdriver selenium-webdriver

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