我整天都在堆栈溢出,试图寻找这个问题的答案。我觉得我已经接近了,但无论我做什么,我仍然无法让程序通过。这是我想要做的:
我有一个按周计算的在线日历。每周都可以点击,并更改计划以匹配该周。这就是我试图点击的特定行看起来像:
<tr align="right" class="Calendar" id="Week5" valign="bottom"
onmouseover="highlightRow( 5, 'high' );" onmouseout="highlightRow(5, 'low' );"
onclick="selectRow( 5 );" bgcolor="#ccffcc">
<td>25</td>
<td>26</td>
<td>27</td>
<td>28</td>
<td>29</td>
<td>30</td>
<td>31</td>
<td></td>
</tr>
所以我认识到这是一个鼠标悬停,它不会变成可点击的,直到你将它悬停在它上面(对吗?)无论我做什么,我都无法将Week5识别为可点击的元素。我尝试添加这个:
WebDriverWait wait = new WebDriverWait(driver, 10);
WebElement element = wait.until(ExpectedConditions.elementToBeClickable(By.id("Week5")));
但它仍然告诉我它无法找到Week5作为元素。我也试过这个
Actions builder = new Actions(driver);
builder.moveToElement(driver.findElement(By.id("Week5"))).click().build().perform();
我觉得我越来越接近,但最大的问题是我无法识别这个元素。我尝试使用xpath作为表,但这也没有用。也许我做得不对。有人可以帮助这个n00b而不需要很少的正式计算机科学培训吗?
谢谢, 斯科特
答案 0 :(得分:0)
尝试使用以下定位器
By.xpath("//tr[contains(@id, 'Week5')]")
另外,检查当前定位器的元素是否在网页上! 希望,它会有所帮助,有关您的问题的答案的更多信息,请在网页上发送链接,您现在正在使用它。