存储在列表中的元素未被点击,"在点错误时无法点击"在selenium java

时间:2018-05-07 18:34:22

标签: java selenium

enter image description here我试图从列表中保存的项目列表中找到一个元素。但是,当我尝试通过给出其索引号来点击该元素时,我收到错误"元素不可点击"。这是我的代码:

package TestCases;

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;

import java.io.IOException;
import java.util.List;

import Utility.BarneyTestData;
import Utility.Constants;
import Utility.UtilityMethods;

public class AnonymousUserPurchase {
    // static WebDriver driver;
    UtilityMethods util = new UtilityMethods();

    @BeforeClass
    public void launchBrowser() {

        UtilityMethods.openBrowser(Constants.BROWSER_NAME);
        UtilityMethods.launchWebsite(Constants.URL);

    }

    @Test

    public void PurchaseItemTest() throws InterruptedException, IOException {
        Thread.sleep(9000);

        util.clickElement(Constants.MENCATEGORYTAB);
        util.clickbyXpath(Constants.MENTHIRTS);

        List<WebElement> element = util.getdriver().findElements(By.className(BarneyTestData.getValueOfExcel(0, 1)));
        System.out.println(element);
        Thread.sleep(5000);

        element.get(1).click();
    }

}

//页面的Html代码

<a href="/product/alpha-industries-thedrop-40barneys-3a-m-65-defender--22love-trumps-hate-22-field-jacket-505380835.html" class="brand-link" precog_scanned="true">
                    Alpha Industries
                </a>


<a href="/product/alpha-industries-thedrop-40barneys-3a-m-65-defender--22love-trumps-hate-22-field-jacket-505380835.html" class="name-link" precog_scanned="true">thedrop@barneys: M-65 Defender "Love Trumps Hate" Field Jacket</a>

2 个答案:

答案 0 :(得分:0)

根据错误,您可以使用操作类单击元素

语法:

Actions action = new Actions(driver);
action.moveToElement("Your Element").click().perform();

答案 1 :(得分:0)

为此,Selenium模拟真实用户,这意味着未显示或隐藏的元素将无法点击。 您可以通过使用Javascript执行程序绕过该规则来解决此问题,如下所示:

((IJavaScriptExecutor)Browser.Driver).ExecuteScript("arguments[0].click();", _element);

其中_element是您要与之交互的webElement

或使用等待条件。

更多信息: Selenium Web Driver & Java. Element is not clickable at point (36, 72). Other element would receive the click: