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

时间:2014-06-21 01:12:09

标签: javascript node.js selenium-webdriver

好的,这很烦人。我现在一直试图解决这个问题4天而且我只是陷入困境。我需要单击一个按钮,但按钮没有ID或类属性。我认为唯一的方法是遍历所有" Button"对象并找到包含文本的对象#34;提交"。然后单击该元素。但是由于Async特性,一旦找到按钮对象,就无法获得该对象。我需要某种方式退后一步,或将该对象作为" 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
        });                
    }
});

1 个答案:

答案 0 :(得分:0)

您可以通过CSS选择器找到按钮,例如

driver.findElement(webdriver.By.css("input[type=submit]")).click();

或文字值,如有必要:

driver.findElement(webdriver.By.css("input[value='Submit']")).click();