好了,这有点烦人了。我已经试着解决这个问题4天了,我只是卡住了。我需要单击一个按钮,但该按钮没有ID或类属性。我认为唯一的方法是遍历所有"Button"对象并找到包含文本"Submit"的对象。然后点击那个元素。但由于异步特性,一旦你找到按钮对象,你就无法获得那个对象。我需要一些方法来后退一步,或者传递该对象作为"innerHTML"函数调用的一部分。这是我在哪里:
driver.findElements(webdriver.By.tagName('button')).then(function(webElements)
{
for(var i=0; i<webElements.length; i++)
{
driver.executeScript(function() {
return webElements[i].innerHTML;
}).then(function(innerHTML) {
if(innerHTML == 'Submit')
webElements[i].click(); // webElements[i] is NULL
});
}
});
你可以通过CSS选择器来定位按钮,例如
driver.findElement(webdriver.By.css("input[type=submit]")).click();
或按文本值,如有必要:
driver.findElement(webdriver.By.css("input[value='Submit']")).click();