【问题标题】:Java Selenium Firefox Driver - Textbox Onchange IssueJava Selenium Firefox 驱动程序 - 文本框 Onchange 问题
【发布时间】:2011-10-31 15:33:40
【问题描述】:

在 centos 上使用 Firefox 驱动程序运行 Java/Selenium 2.3(和 4)

尝试针对具有文本类型的表单和 onchange 的网站进行测试。尝试使用发送键插入文本,然后通过选择/单击表单中的另一个术语来更改焦点。也试图做一个火灾事件。 (2.3 sel似乎不支持)

也上网搜了一下,没有运气。

基本上,试图解决如何为 selenium/firefox 驱动程序插入文本框,因此插入的文本实际上出现在 textarea 中,这意味着 onchange 事件被触发。

测试html是::

<td rowspan='4' nowrap='nowrap'  valign='top' align='left'>
<DIV id='win0divCLASS_SRCH_WRK2_SUBJECT$69$'><input type='text' name='CLASS_SRCH_WRK2_SUBJECT$69$' id='CLASS_SRCH_WRK2_SUBJECT$69$' tabindex='31' value=""  class='PSEDITBOX' style='width:60px; ' maxlength='8' onchange="addchg_win0(this);oChange_win0=this;"  />
</DIV></td>

测试代码是::

        driver.findElement(By.name("CLASS_SRCH_WRK2_SUBJECT$69$"))
            .sendKeys("ACG");
        driver.findElement(By.name("CLASS_SRCH_WRK2_SUBJECT$69$"))
            .sendKeys("");


        Select sCourse= new Select(driver.findElement(By.id("CLASS_SRCH_WRK2_ACAD_CAREER")));
        sCourse.selectByValue("");

测试设置文本元素,然后设置选择项的选择/选项,这应该会触发焦点的更改。我还尝试清除并重置文本,认为这可能会触发 onchange..

这个问题的解决方案会帮助很多一直在寻找同样东西的人!

谢谢

【问题讨论】:

    标签: java linux firefox selenium driver


    【解决方案1】:

    你试过在 sendKeys 之后做一个标签吗? 你可以做一个 driver.findElement(By.name("CLASS_SRCH_WRK2_SUBJECT$69$")) .sendKeys("\t");

    【讨论】:

    • 是的。没用。还尝试通过单击简单地对单独的元素进行选择。也没有工作。无论出于何种原因,onchange 函数似乎都没有被正确触发。
    【解决方案2】:

    我遇到了类似的问题(尽管我的触发器是 onBlur)。我直接调用了 blur() 方法。在你的情况下,它会是

    driver.findElement(By.name("CLASS_SRCH_WRK2_SUBJECT$69$")).sendKeys("ACG");
    ((JavascriptExecutor)driver).executeScript( "$('[name=\"CLASS_SRCH_WRK2_SUBJECT$69$\"]' ).blur() );
    

    您可能需要除 blur() 以外的其他函数。

    【讨论】:

      猜你喜欢
      • 2013-04-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-06-30
      • 2017-09-11
      • 2017-01-27
      • 2014-11-05
      • 2019-08-13
      相关资源
      最近更新 更多