Javascript Selenium WebDriverJ使用循环查找文本字符串
好吧,这真让人讨厌。我已经试着解决这个问题4天了,我只是被卡住了。我需要单击一个按钮,但该按钮没有ID或class属性。我认为唯一的方法是遍历所有按钮对象并找到包含文本Submit的对象。然后单击该元素。但是由于异步特性,一旦找到button对象,就无法获得该对象。我需要一些方法来后退,或者将该对象作为innerHTML函数调用的一部分传递。以下是我的位置:Javascript Selenium WebDriverJ使用循环查找文本字符串,javascript,node.js,selenium-webdriver,Javascript,Node.js,Selenium Webdriver,好吧,这真让人讨厌。我已经试着解决这个问题4天了,我只是被卡住了。我需要单击一个按钮,但该按钮没有ID或class属性。我认为唯一的方法是遍历所有按钮对象并找到包含文本Submit的对象。然后单击该元素。但是由于异步特性,一旦找到button对象,就无法获得该对象。我需要一些方法来后退,或者将该对象作为innerHTML函数调用的一部分传递。以下是我的位置: driver.findElements(webdriver.By.tagName('button')).then(function(web
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();
有太多其他提交按钮,没有ID来隔离我需要提交的按钮click@user3508995我想你不能选择第n个元素,例如第3个表单?你有没有找到解决方案?