Javascript Selenium WebDriverJ使用循环查找文本字符串

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

好吧,这真让人讨厌。我已经试着解决这个问题4天了,我只是被卡住了。我需要单击一个按钮,但该按钮没有ID或class属性。我认为唯一的方法是遍历所有按钮对象并找到包含文本Submit的对象。然后单击该元素。但是由于异步特性,一旦找到button对象,就无法获得该对象。我需要一些方法来后退,或者将该对象作为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();

有太多其他提交按钮,没有ID来隔离我需要提交的按钮click@user3508995我想你不能选择第n个元素,例如第3个表单?你有没有找到解决方案?