无法使用 webdriver 单击按钮
Not able to click on button using webdriver
我的应用程序中有一个购物车 link。下面是我检查元素时得到的代码。我正在尝试使用 id、xpath、linktext、部分 link 文本来单击此元素。我仍然无法通过。请帮忙
<a id="shoppingCartLink" href="/NTNstore/cart" style="text-indent: -9px">CART</a>
点击方式不同:-
如果您的问题是该元素被滚动到屏幕之外(结果在 header 条之类的东西下方),您可以尝试将其滚动回视图,如下所示:
private void scrollToElementAndClick(WebElement element) {
int yScrollPosition = element.getLocation().getY();
js.executeScript("window.scroll(0, " + yScrollPosition + ");");
element.click();
}
如果需要,您还可以添加静态偏移量(例如,如果您有一个 200 像素高且始终显示的页面 header):
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
希望对您有所帮助:)
我没有框架,你尝试了所有定位器策略然后使用下面的 java 脚本代码并使用 Java 脚本执行器 class
执行
document.getElementById("shoppingCartLink").click()
希望这对你有用。
谢谢,
萨迪克
我的应用程序中有一个购物车 link。下面是我检查元素时得到的代码。我正在尝试使用 id、xpath、linktext、部分 link 文本来单击此元素。我仍然无法通过。请帮忙
<a id="shoppingCartLink" href="/NTNstore/cart" style="text-indent: -9px">CART</a>
点击方式不同:-
如果您的问题是该元素被滚动到屏幕之外(结果在 header 条之类的东西下方),您可以尝试将其滚动回视图,如下所示:
private void scrollToElementAndClick(WebElement element) {
int yScrollPosition = element.getLocation().getY();
js.executeScript("window.scroll(0, " + yScrollPosition + ");");
element.click();
}
如果需要,您还可以添加静态偏移量(例如,如果您有一个 200 像素高且始终显示的页面 header):
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
希望对您有所帮助:)
我没有框架,你尝试了所有定位器策略然后使用下面的 java 脚本代码并使用 Java 脚本执行器 class
执行document.getElementById("shoppingCartLink").click()
希望这对你有用。
谢谢, 萨迪克