3

我的JavaScript的onclick爲:在硒錨標籤onclick功能不工作?

<a href="#" id="download" onclick="Exceldownload('sites')"> 
    <i class="fa fa-download card-down-icon" aria-hidden="true"></i> 
</a> 

在硒我說是這樣的:

public void x() { 
    driver.findElement(By.xpath("//a[@onclick='Exceldownload("sites")']")).click(); 
} 

但我得到錯誤的元素是不能點擊。

+0

您需要先進行驗證,如果it..in這種情況下,其他因素疊加,你應該等到元素,可以點擊.. –

+0

是否有可能直接調用函數而不是錨標記ID? –

+0

是的,但這不是正確的測試行爲。您需要確定點擊的實際問題.. –

回答

1

可能性

  1. 與頁面相同的XPath重複的網頁元素。
  2. 元素可以在框架中。您需要切換到框架
  3. 試圖訪問頁面加載前的Web元素。給了一些等待時間。

如果一切正常,請嘗試通過單擊java腳本單擊,如片段所示。

WebElement element =driver.findElement(By.xpath("//a[@onclick='Exceldownload("sites")']")); 
 
JavascriptExecutor executor = (JavascriptExecutor)driver; 
 
executor.executeScript("arguments[0].click();", element);

+0

它顯示錯誤爲「a [@ onclick ='Exceldownload(」sites「)']」無效Xpath表達式 –

+0

從「網站」刪除雙引號,網站。或 WebElement element = driver.findElement(By.xpath(「// a [@ onclick ='Exceldownload(」+「sites」+「)']」)); – Lucky

+0

仍然是錯誤的無效元素狀態 –

1

元素是不能點擊

這個問題可以有多種原因如下:

  • 也許就像加載圖像疊加一些其他的元素元素和失望元素滿載後的耳朵。然後,你應該等到元素是可點擊:

    new WebDriverWait(driver, 60).until(
        ExpectedConditions.elementToBeClickable(By.id("download"))).click(); 
    
  • 也許就不存在具有相同定位的多個元素,不幸的是你定位一個隱藏的元素是存在的頁面上,但不能點擊。那麼你需要使用一個獨特的定位器。

  • 也許這是由於設計問題而發生的。可能有其他元素覆蓋元素並正在接收點擊事件。然後你可以使用JavascriptExecutor作爲一種替代方案:

    ((JavascriptExecutor)driver).executeScript(
        "arguments[0].click();", driver.findElement(By.id("download"))); 
    
+0

元素不可點擊錯誤 –

+0

@shreyaS在這種情況下,你有這個錯誤? –