Java Selenium Firefox驱动程序 - Textbox Onchange问​​题

时间:2011-08-21 16:00:25

标签: java linux firefox selenium driver

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

尝试针对具有文本类型的表单的网站进行测试,并使用onchange。尝试使用sendkeys插入文本,然后通过选择/单击表单中的另一个术语来更改焦点。试图做一个事情。 (似乎在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("");

测试设置textelement,然后设置select项的select /选项,这将触发焦点的更改。我还试图清除并重置文本,认为这可能会触发onchange ..

解决这个问题可以帮助很多一直在寻找同样事情的人!

由于

2 个答案:

答案 0 :(得分:0)

您是否尝试过sendKeys之后的标签? 你可以做一个 driver.findElement(By.name( “CLASS_SRCH_WRK2_SUBJECT $ $ 69”))             .sendKeys( “\ t” 的);

答案 1 :(得分:0)

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

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

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