2016-08-12 159 views
9

我想單擊頁面頂部的按鈕。我使用CSS選擇器,它在我當地的eclipse中運行它時工作得很好。但是當我嘗試運行它時在本地機器上的Jenkins服務器上,它失敗,說元素不可點擊。 當我在Jenkins上看到失敗測試的截圖時,我發現頭部與我想單擊的按鈕重疊。 我已經嘗試了幾乎所有使用XPath,CSS,移動到元素,移動鼠標。 但仍然無法修復它,有人請幫忙。元素在點上不可點擊。其他元素將收到點擊:

我特林單擊添加buttoun

org.openqa.selenium.WebDriverException: Element is not clickable at point (775.25, 10.166671752929688). Other element would receive the click: <div class="globalHeader-UtilTop"></div> 
Command duration or timeout: 69 milliseconds 
Build info: version: '2.53.0', revision: '35ae25b1534ae328c771e0856c93e187490ca824', time: '2016-03-15 10:43:46' 
System info: host', ip: '', os.name: 'Windows 7', os.arch: 'amd64', os.version: '6.1', java.version: '1.7.0_80' 

<div class="Componet-intels**strong text**-Container"> 
<div class="Componet-intels-Container-Header"> 
<div class="Componet-intels-Container-Content"> 
<div class="Componet-intels-Container-Content-Row"> 
<span class="Componet-intels-Item"> Item # </span> 
<span class="Componet-intels-Text-Item"> 
<span class="Componet-intels-Lable-Quantity"> Qty: </span> 
<span class="Componet-intels-Text-Quantity"> 
<span class="Componet-intels-Button"> 
**<input class="Componet-intelsButtonIcon" type="button" value="Add">** 
</span> 
</div> 
+0

沒有一些HTML預覽/硒代碼很難幫助 – Dekel

+0

@Dekel更新了帖子。感謝您的建議。 – Samantha

+0

''元素,我使用'.submit()'而不是'.click()'方法修復了類似的問題。 – jfs

回答

16
Element is not clickable at point (775.25, 10.166671752929688). Other element would receive the click: <div class="globalHeader-UtilTop"></div> 

它清楚地說,我們要點擊是在這種情況下一些其他的元素隱藏的div元素,這將收到的點擊。

我認爲這是與用戶界面和頭部不應該隱藏元素問題,但你可以嘗試幾件事情:1。 從最大化webdriver的瀏覽器窗口,看看標題仍然隱藏元素

driver.manage().window().maximize() 
  • 使用JavaScript點擊元素 WebElement element = driver.findElement(By.<locator>); JavascriptExecutor executor = (JavascriptExecutor)driver; executor.executeScript("arguments[0].click()", element)
  • +0

    你是如何定義「驅動程序」變量的? – nix86

    +0

    @ nix86此答案中的代碼是僞代碼。 「driver」變量是WebDriver接口實現的一個實例(請參閱https://seleniumhq.github.io/selenium/docs/api/java/org/openqa/selenium/WebDriver.html)。 – Stephan

    0

    林我的情況,我必須點擊一個按鈕幾個圖表是隻加載後這將是可見的,那麼阿賈克斯圖片。下面的步驟幫助我解決這個問題:

    1. 確定哪些Ajax調用後消失的xpath/css是完整的,明確等待它是invisible-wait.until(ExpectedConditions.invisibilityOf(element));

    2. 一個更明確的等待按鈕是clickable-wait.until(ExpectedConditions.elementToBeClickable(element));

    3. 使用JavaScript點擊按鈕 -

      WebElement element = driver.findElement(By.xpath("")); JavascriptExecutor js = (JavascriptExecutor)driver;
      js.executeScript("arguments[0].click()", element);

    如果還是這不起作用嘗試插入步驟1和2

    +0

    不明白downvote,當click()和driver.actions()。click()不起作用時,executeScript適用於我 –

    0

    使用JavascriptExecutor之間的隱含的等待: - 。

    WebElement element = driver.findElement(By.<locator>); 
    
    JavascriptExecutor executor = (JavascriptExecutor)driver; 
    executor.executeScript("arguments[0].click()", element)