javascript - 如何在 Protractor 中单击没有文本的按钮?

标签 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

如何点击相同内容?

我尝试了以下代码:

describe ('angularjs homepage', function() {
    browser.get('http://angular.github.io/peepcode-tunes/public/');
    element(by.css('[ng-click="player.playlist.add(album)"]')).click();
});

不幸的是,它不起作用。 请帮忙

最佳答案

您无法单击它们,因为它们都具有相同的类和属性。 在这些情况下,您有 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
});

我测试了一下,两个都有效!如果您遇到问题,请告诉我!

关于javascript - 如何在 Protractor 中单击没有文本的按钮?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38496404/

相关文章:

javascript - 网络打印多台打印机

javascript - Angular js动态网格标题

javascript - 无法在 angularJS 中填写文本输入

performance - Selenium UI 在 Firefox 上的 Jenkins 上测试速度太慢(使用 xvfb)

javascript - Webdriver:Google 快讯选项的自动化

testing - 如何单击溢出 :hidden in cucumber/capybara 的元素

javascript - 更改文件夹中的图像不会反射(reflect)浏览器中的更改

javascript - 使用状态和模板文字进行重定向 react

javascript - 无法在选择元素中进行 onchange 工作

javascript - Angularjs http post 到 c# 不起作用