无法使用webdriver单击按钮

时间:2016-03-14 06:09:56

标签: selenium-webdriver click element

我的应用程序中有一个购物车链接。下面是我检查元素时得到的代码。我试图使用id,xpath,linktext,部分链接文本单击此元素。但是我无法通过。请帮忙

<a id="shoppingCartLink" href="/NTNstore/cart" style="text-indent: -9px">CART</a>

2 个答案:

答案 0 :(得分:1)

如何以不同方式点击: -

如果您的问题是元素从屏幕滚动(并且因此在标题栏之类的内容下滚动),您可以尝试将其滚动到视图中,如下所示:

private void scrollToElementAndClick(WebElement element) {
    int yScrollPosition = element.getLocation().getY();
    js.executeScript("window.scroll(0, " + yScrollPosition + ");");
    element.click();
}

如果需要,还可以添加静态偏移量(例如,如果页面标题高200像素且始终显示):

    public static final int HEADER_OFFSET = 200;

    private void scrollToElementAndClick(WebElement element) {
    int yScrollPosition = element.getLocation().getY() - HEADER-OFFSET;
    js.executeScript("window.scroll(0, " + yScrollPosition + ");");
    element.click();
}

如果仍然无效,请使用JavascriptExecutor

WebElement element= driver.findElement(By."Your Locator"));

JavascriptExecutor executor = (JavascriptExecutor) driver;
executor.executeScript("arguments[0].click();", element);

我认为存在框架问题

您需要先切换到相框。也改变了语法,因为答案在C#中,可能你需要一个java代码

请参阅下面的答案: -

Selenium in C# - How do I navigate different frames

希望它会对你有所帮助:)。

答案 1 :(得分:0)

我没有框架,你尝试了所有定位器策略然后使用下面的java脚本代码并使用Java脚本执行器类执行

document.getElementById("shoppingCartLink").click()

希望这对你有用。

谢谢, 萨迪克