我似乎在单击由 ajax 填充的框内的元素时遇到问题。
所以我所在的网页上有一个链接,当点击它时,它会调用一个javascript函数,然后将一个新的div插入到充满新内容的页面中。
现在奇怪的是我可以使用 xpath 找到这个框内的元素没有问题,我什至可以读取它的值但是!我不能使用 Click(); 在框内的链接上,该事件由于某种原因无法正常工作。
有没有人遇到过类似的问题并知道解决方法?
我正在使用 Selenium webdriver 2.35 和 Firefox 23
More Info
好的,所以我单击的链接的 HTML 调用 JS 以使 div 出现。
<center>
<a id="link_fleet_move_here" href="">Move fleet here</a>
</center>
<br>
<script>
$("#link_fleet_move_here").click( function(event) { event.preventDefault(); load_fleet_move_to_destination("fleet.aspx?method=ajax&view=move_to_destination&version=1&player=111&destination=LZLOCATION"); $("#link_fleet_move_here").hide();} )
</script>
<center>
<div id="fleetLoaderTemplate" style="display:none">
<div id="fleetLoaderErrorTemplate" style="display:none">
</center>
<div id="move_to_destination_container"></div>
当事件完成加载新的 HTML
<div id="move_to_destination_container">
<ajax>
<table width="600" align="center">
BIG TABLE FULL OF CONTENT
<td sorttable_customkey="LZLOCATION">
<a href="map.aspx?loc=LZLOCATION">(LZLOCATION)</a>
</td>
<td sorttable_customkey=""></td>
<td sorttable_customkey=""></td>
<td>
<a href="fleet.aspx?fleet=&view=move&destination=AnotherLocation">Move</a>
</td>
<table>
<br>
</ajax>
</div>
选择器
location = driver.FindElement(By.XPath("//a[contains(@href, '" + LZLocation + "')]/following::td[3]"));
location.Click();
我认为这实际上可能与那个 div 有关,我认为它以 Display:None 开头并被更改,这会影响它吗?
我以为它是动态添加的,但也许不是!