2016-12-23 55 views
1

我一直在堆棧溢出,試圖追捕這個問題的答案。我覺得我已經接近了,但無論我做什麼,我仍然無法讓程序通過。以下是我正在嘗試執行的操作:在Java中使用Selenium - 無法識別元素(在表中)

我有一個按周排列的在線日曆。每週都是可點擊的,並改變時間表以匹配那周。這就是我想要的特定行點擊看起來像:

<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

嘗試使用以下定位

By.xpath("//tr[contains(@id, 'Week5')]") 

此外,檢查與當前的定位器元件是第一個網頁上! 希望,這將有助於更多關於你的問題的答案,請給我鏈接到你現在工作的網頁上。

+0

嘿謝謝你的嘗試。它沒有工作 - 仍然說「無法定位元素」,可能是因爲它沒有顯示它可用,直到你將鼠標移到它上面。我很想在網頁上發送鏈接,但這是爲了在內部網站工作 - 您需要在這裏工作才能訪問它...我感謝您的幫助! – Munchy

相關問題