Selenium webdriver点上的元素无法点击

时间:2016-07-08 03:34:58

标签: javascript node.js selenium selenium-webdriver click

我有以下代码,我无法弄清楚如何点击元素而不会收到"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();

2 个答案:

答案 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