JMeter Web驱动程序采样器org.openqa.selenium.InvalidElementStateException

时间:2015-01-02 07:42:08

标签: firefox selenium-webdriver load jmeter jmeter-plugins

我刚刚使用WebDriver Sampler准备了负载测试。我使用的是selenium-chrome-driver-2.39.0.jar,selenium-firefox-driver-2.39.0.jar,JMeter 2.11和FireFox 26.0。当我使用Chrome驱动程序配置时,没有错误。但是,当我使用与FireFox驱动程序配置相同的脚本时,我收到错误。错误是:

  

响应消息:org.openqa.selenium.InvalidElementStateException:[Exception ..." Component返回失败代码:0x80004005(NS_ERROR_FAILURE)[nsINativeMouse.click]" nsresult:" 0x80004005(NS_ERROR_FAILURE)" location:" JS frame ::

我想点击

<option value="12">12< /option>

var selectCCMonth = WDS.browser.findElement(lib.By.cssSelector('.ccMonth option:nth-of-type(13)'))
selectCCMonth.click() 

以上代码适用于Chrome驱动程序配置,但不适用于FireFox驱动程序配置。

html是:

<select class="clsSelect pie ccMonth required normalSelect valid" name="ExpirationDateMonth" id="ccMonth" title="Zorunlu" style="border: 1px solid rgb(214, 214, 214);">
    <option value="">Ay</option>
    <option value="1">01</option>
    <option value="2">02</option>
    <option value="3">03</option>
    <option value="4">04</option>
    <option value="5">05</option>
    <option value="6">06</option>
    <option value="7">07</option>
    <option value="8">08</option>
    <option value="9">09</option>
    <option value="10">10</option>
    <option value="11">11</option>
    <option value="12">12</option>
</select>

我该如何处理这个问题?

3 个答案:

答案 0 :(得分:1)

查看<select>代码我猜您正在尝试从下拉列表中选择一个值。在Selenium世界,它需要有所不同。一般来看Select课程,特别是selectByVisibleText方法。

示例代码如下:

var element = WDS.browser.findElement(lib.By.cssSelector('.ccMonth option:nth-of-type(13)'))
var select = new org.openqa.selenium.support.ui.Select(element)
select.selectByVisibleText('12')

有关更多WebDriver采样器提示以及有关最常见问题的某些常见问题解答,请查看The WebDriver Sampler: Your Top 10 Questions Answered指南。

答案 1 :(得分:0)

您可以尝试创建Select对象,然后使用selectByVisibleText方法吗?

  

(此方法在java中,请在您的相关内容中查看相关内容   首选语言。)

希望这可能有所帮助。

如果出现问题,您可以参考this链接。

答案 2 :(得分:0)

我刚刚找到了解决方案。

我将该代码添加到我的脚本中

WDS.browser.executeScript(&#39; $(&#34; .ccMonth&#34;)VAL(12);&#39)

并且有效。