我有以下代码,我无法弄清楚如何点击元素而不会收到"Element is not clickable at point"
错误消息。
您还可以看到我在点击之前移动到该元素。以下代码示例应该完全有效。
var webdriver = require('selenium-webdriver')
, By = webdriver.By
, until = webdriver.until;
var driver = new webdriver.Builder().forBrowser('firefox').build();
driver.get('http://www.vapeworld.com/');
driver.manage().timeouts().implicitlyWait(10, 3000);
for (i = 0; i < 5; i++) {
try {
driver.executeScript("try{jQuery('[name=\"" + i.toString() + "_name\"]')[1].click()}catch(Ex){};");
}
catch (Ex) {}
}
driver.findElement(webdriver.By.id('search')).sendKeys('pax 2'); //to enter text
driver.findElement(webdriver.By.className('button search-button')).click();
driver.findElement(webdriver.By.id('product-collection-image-2270')).then(function (element) {
driver.actions().mouseMove(element).perform();
driver.sleep(5000);
driver.actions().click(element).perform();
});
driver.quit();
答案 0 :(得分:1)
您应该尝试使用.executeScript()
执行点击操作,如下所示: -
只需更改此行:
driver.actions().click(element).perform();
到此:
driver.executeScript("arguments[0].click()", element)
希望它能起作用.. :)
答案 1 :(得分:0)
您正尝试click
点击“按钮搜索按钮”,确保没有任何元素重叠在您的click
元素上。
检查'pax 2'的搜索结果是否与click
元素重叠。
如果是这样,那么click
会对由于搜索而没有重叠的其他元素进行click
,并确保click
不会在页面上进行任何更改,因为您不需要它。 (尝试点击一些标签元素)
然后在您想要的元素上尝试ListView
。