如何让Selenium驱动程序单击通过JavaScript动态创建的链接

时间:2014-03-20 22:04:07

标签: ruby selenium-webdriver

我正在尝试自动化操作,并且由于其动态特性而无法选择元素。 我在ruby上运行Selenium web驱动程序,我正在尝试选择页面源中不存在的值。

<a class="linkOtherBrowser" onclick="addChangeStatusField('InitialSelectionPage');submitFormByAction('ChangeStep');return false;" href="#"><div class="processBarElement noSelected">
<div class="whiteBeforeProcessBarTitles"></div>Initial Selection</div>
<div class="endOfElementOfProcessBar"></div></a>

我正在尝试选择价值&#34;初始选择&#34;从上面。

有人可以帮忙吗?

谢谢, 阿布舍克巴克

2 个答案:

答案 0 :(得分:0)

由于HTML是由Javascript生成的,您需要检查DOM 而不是viewsource并相应地编写元素定位器代码。

注意:在IE,Firefox或Chrome中,您可以按F12键查看开发人员工具,并使用inspect元素选项检查DOM。

答案 1 :(得分:0)

在DOM中添加动态生成的任何元素。 WebDriver具有点击元素的功能,在UI上是可见的,因此如果生成的元素对于普通用户是可见的,则可以轻松地单击元素。

为此,您需要为新生成的点击确定最佳选择器,可以是xpath或css。识别出选择器后,您可以考虑使用以下代码单击单击

WebElement element = driver.findElement(By.xpath("//a[@title='NAME_TITLE']"));
element.click();

OR

WebElement element = driver.findElement(By.css("a[title='NAME_TITLE']"));
element.click();

在By.class中有更多选项以最佳方式选择元素