使用javascript为Web元素设置文本 - Selenium Web驱动程序

时间:2014-02-11 07:31:47

标签: selenium selenium-webdriver ui-automation

如何使用java脚本执行器设置Web元素的文本?或者还有其他方法吗?

<a class="selectBox selectBox-dropdown selectBox-menuShowing selectBox-active" style="width: 52px; display: inline-block; -moz-user-select: none;" title="" tabindex="0">
<span class="selectBox-label" style="width: 13px;">10</span>
<span class="selectBox-arrow"/>
</a>

标签下有两个span元素 - 这是一个下拉列表。用户点击span [2]并显示一个列表,其中包含10,20,30,40等数据。用户点击数字(元素)并设置为span [1]的文本(在此案例,选择10)。我该如何解决这个问题?

我尝试了“动作”构建器,但它无效。还有其他建议吗?

1 个答案:

答案 0 :(得分:5)

如果要直接更改span [1]的文本,可以使用以下代码:

String jScript = "var myList = document.getElementsByClassName(\"selectBox-label\");"
    +"myList[0].innerHTML=\"YourNumber\";"; 
JavascriptExecutor executor = (JavascriptExecutor)driver;
executor.executeScript(jScript);

但是,您也可以使用java脚本单击该数字,如您所说,将设置span [1]的文本。示例如下:

WebElement element = driver.findElement(By.xpath("YourNumbersXpath"));
JavascriptExecutor executor = (JavascriptExecutor)driver;
executor.executeScript("arguments[0].click();", element);