如何点击相同?
我尝试了以下代码:
else if ( array instanceof Float64Array ) {
console.warn("Unsupported data buffer format: Float64Array");
}
不幸的是它没有用。 请帮忙
答案 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并以此方式抓取它