标签: webdriver

Selenium WebDriver StaleElementReferenceException

运行我的测试时出现此错误:org.openqa.selenium.StaleElementReferenceException:元素不再附加到DOM

关于如何解决上述异常的任何想法?这发生在我的网格中,它有一个动态的ref Xpath表达式

java testing selenium webdriver

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

WebDriver打开新标签

我已经在网上搜索了WebDriver API.我没有看到使用WebDriver/Selenium2.0打开新标签的方法.

有人可以确认我是对的吗?

谢谢,克里斯.PS:我看到的当前替代方案是在同一窗口中加载不同的URL或打开新窗口.

java automated-tests webdriver selenium-webdriver

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

在Python中使用Selenium Webdriver测试失败时的自动截图

如果我的webdriver测试失败(任何异常或断言错误),我想自动捕获屏幕截图.我正在使用Python unittest和Selenium Webdriver.有没有人有这个问题的解决方案?

python selenium screenshot webdriver

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

我在哪里可以找到明确的Selenium WebDriver到Firefox兼容性矩阵?

我在各种平台上使用Selenium Java和Firefox Web Driver开展了许多项目.我一次又一次地遇到了我们使用的Selenium WebDriver版本和安装的Firefox版本之间的不兼容性.

当然,第一道防线是确保我们使用最新版本的WebDriver和最新版本的FireFox.

有时,这是不可能的,因为我们使用的是旧版本的Java,或者仅仅因为阻力最小的路径是使用随OS一起分发的Firefox版本.

我真的希望有一个可靠的兼容性矩阵,告诉我哪个版本的Firefox可以与哪个版本的Selenium WebDriver一起使用.我在哪里可以找到一个?

java firefox compatibility selenium webdriver

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

Chromedriver在使用Selenium Grid和.net的特定机器上速度极慢

概述: Chromedriver在一台机器上正常工作,但在另外两台相同的机器上工作速度非常慢.

建立:

  • Selenium Webdriver使用.Net进行编码,使用Selenium Grid进行分发测试.正在Visual Studio 2010中使用MSTest以运行测试.
  • 一台64位Windows 7本地计算机充当集线器
  • 我的本地网络上有三台32位Win 7远程计算机(其中两台是虚拟的)都配置为节点.以下是用于启动远程计算机上的节点的命令:

    java -jar c:\ seleniumWebDriver\seleniumGrid\selenium-server-standalone-2.31.0.jar -role node -hub http://XXX.XXX.XXX.XXX:4444/grid/register -browser"browserName = chrome" ,maxInstances = 4 -Dwebdriver.chrome.driver ="C:\ seleniumWebDriver\chromedriver.exe"

  • 驱动程序在代码中以这样的方式启动:

    DesiredCapabilities capability = new DesiredCapabilities(); capability.SetCapability(CapabilityType.BrowserName,browser); driver = new RemoteWebDriver(new Uri(hubUrl),capability);

  • 上面的变量"browser"和"hubUrl"通过在运行时构建的app.config文件传递.对于这种情况,浏览器= chrome.

问题:

  • 当我使用上面的命令将机器212(它是一个虚拟机)设置为chrome节点,然后从集线器启动脚本时,我在正确的远程机器上看到chrome start并正常运行.它每秒在5-10个命令之间.

  • 当我以相同的方式将机器78(虚拟机)或机器103(真实机器)设置为节点,然后从集线器启动脚本时,我看到节点正确地启动了chrome.但是,它运行速度非常慢,如每秒1次或更少.

其他信息: 就像我说的,在一台机器上镀铬工作正常,但在其他机器上,运行速度非常慢.Firefox和IE配置为节点时,可以正常工作.

我已将机器212(工作正常)与其他机器进行了比较,但无法找到差异.所有机器都使用'selenium-server-standalone-2.31.0.jar'和相同版本的ChromeDriver.

似乎节点机器没有被重载.此外,这是一个非常一致的性能差异,似乎与网络或机器上的任何波动负载无关.

我的网络技术已经验证所有这些机器在网络上配置相同.

以前有人见过这样的事吗?

编辑1:我今天登录,所有三台远程机器都在缓慢运行chrome.在其中一个是正常的之前,但现在他们都很慢.

mstest webdriver selenium-grid selenium-chromedriver selenium-webdriver

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

加载页面后,selenium获取当前URL

我在Java中使用Selenium Webdriver.我想在点击"下一步"按钮后从第1页到第2页获取当前网址.这是我的代码:

    WebDriver driver = new FirefoxDriver();
    String startURL = //a starting url;
    String currentURL = null;
    WebDriverWait wait = new WebDriverWait(driver, 10);

    foo(driver,startURL);

    /* go to next page */
    if(driver.findElement(By.xpath("//*[@id='someID']")).isDisplayed()){
        driver.findElement(By.xpath("//*[@id='someID']")).click();  
        driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
        wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//*[@id='someID']")));
        currentURL = driver.getCurrentUrl();
        System.out.println(currentURL);
    }   
Run Code Online (Sandbox Code Playgroud)

在获取当前url之前,我有隐式和显式等待调用以等待页面完全加载.但是,它仍然打印出第1页的网址(预计它将成为第2页的网址).

java paging selenium webdriver

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

类型错误:WebDriver.__init__() 获得参数“选项”的多个值

错误是:

TypeError: WebDriver.__init__() got multiple values for argument 'options'
Run Code Online (Sandbox Code Playgroud)

`

代码是:

chrome_options = Options()
chrome_options.add_argument('--headless')
chrome_options.add_argument('--no-sandbox')
chrome_options.add_argument('--disable-dev-shm-usage')

browser = webdriver.Chrome(r'/usr/bin/chromedriver', options=chrome_options)
Run Code Online (Sandbox Code Playgroud)

这是错误:

TypeError                                 Traceback (most recent call last)
<ipython-input-5-9a7e59e392ae> in <cell line: 6>()
      4 chrome_options.add_argument('--headless')
      5 
----> 6 browser = webdriver.Chrome(r'/usr/bin/chromedriver', options=chrome_options)

TypeError: WebDriver.__init__() got multiple values for argument 'options'
Run Code Online (Sandbox Code Playgroud)

python webdriver python-3.x selenium-chromedriver selenium-webdriver

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

获取selenium发布的浏览器PID

我想获得selenium推出的浏览器的PID.有没有办法完成它?

selenium webdriver selenium-rc selenium-webdriver

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

如何在静默模式下执行Selenium Chrome WebDriver?

使用Chrome Selenium-WebDriver时,它将在服务器启动时输出诊断输出:

在端口9515上启动ChromeDriver(v2.0)

我不想看到这些消息,我怎么能抑制它们呢?

我这样做

ChromeOptions options = new ChromeOptions();
options.AddArgument("--silent");
IWebDriver Driver = new ChromeDriver(options);
Run Code Online (Sandbox Code Playgroud)

但诊断输出不会被抑制.

c# selenium webdriver selenium-chromedriver selenium-webdriver

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

Python selenium:等到元素可点击 - 不工作

我将测试一个网络应用程序.我的表格中有一个按钮可供选择所有条目.我试过了:

driver.wait.until(ExpectedCondition.element_to_be_clickable((By.XPATH, "myXpath"))).click()
Run Code Online (Sandbox Code Playgroud)

selenium点击按钮,但没有任何反应.(还有send_Keys(Keys.Return))应用程序是用GXT开发的,我的事情是按钮背后有很多javascript.是否有可能等到事件加载器准备好了?在点击之前等待解决问题,但不是自动化测试的解决方案.

python selenium webdriver click selenium-webdriver

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