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



好了,这有点烦人了。我已经试着解决这个问题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();

最新更新