如何点击量角器中没有文字的按钮?

时间:2016-07-21 06:22:49

标签: javascript angularjs selenium-webdriver jasmine protractor

I want to Click on the two Plus(+) button but the button is not having any text in Music Library Section

如何点击相同?

我尝试了以下代码:

else if ( array instanceof Float64Array ) {
        console.warn("Unsupported data buffer format: Float64Array");
}

不幸的是它没有用。 请帮忙

4 个答案:

答案 0 :(得分:2)

你无法点击它们,因为它们都有相同的类和&属性。 在这些情况下,您有两个选择:

1)您可以直接使用CSS的nth child概念。

describe ('angularjs homepage', function() {
browser.get('http://angular.github.io/peepcode-tunes/public/');
element(by.css('#container > section > ul > li:nth-child(1) > button')).click();  // it will click the first "+" button
element(by.css('#container > section > ul > li:nth-child(2) > button')).click();  // it will click the second "+" button
});

2)您可以使用上面答案中建议的@noor索引来访问它们:

describe ('angularjs homepage', function() {
browser.get('http://angular.github.io/peepcode-tunes/public/');
element.all(by.css('.queue.add')).get(0).click();  // it will click the first "+" button
element.all(by.css('.queue.add')).get(1).click();  // it will click the second "+" button
});

我测试了它们,两者都有效!如果你遇到问题,请告诉我!

答案 1 :(得分:0)

最好使用protractor.ExpectedConditions等待元素变为可点击状态然后再点击操作。

代码段:

EC = protractor.ExpectedConditions;

describe ('angularjs homepage', function() {

it('test case name',function(){

browser.ignoreSynchronization=true;

var twoButtons=element.all(by.css('.queue.add'));
browser.get('http://angular.github.io/peepcode-tunes/public/');

/*It will click first button, chance get(1) for second button*/    
browser.wait(EC.elementToBeClickable(twoButtons.get(0)),  
                                          8000).thenCatch(function () {
                      assert.fail(' element is not click able');
              });
twoButtons.get(0).click();
});
});

答案 2 :(得分:0)

我在java中检查了这个,虽然你不在这里标记java。希望你能把你的代码转换成js。

在java中,先点击+,使用下面的内容:

driver.findElements(By.cssSelector(".queue.add")).get(0).click();

代表第二名:

driver.findElements(By.cssSelector(".queue.add")).get(1).click();

所以,我认为如果您使用以下代码进行js,这将起作用:

 element(by.css('.queue.add')).click();

如果js中有任何方式来获取元素,首先获取元素,然后单击使用元素 索引。

答案 3 :(得分:0)

检查Protractor API API。确保您拥有最新版本。你可以通过多种方式获取加号。一种方法是使用webdriver.By.css

尝试:

browser.findElement(by.css('.queue')).click(); 

您还可以使用webdriver.By.id

向加号添加ID并以此方式抓取它