CSS和具體的文本選擇表裏面TD元素可以說我有以下TBODY它表示該日曆日曆我有很多TD的文本里面是這樣的:如何利用內幕TD
<tbody>
<tr>
<td>31</td>
<td>1</td>
...
</tr>
<tr>
<td>8</td>
<td>9</td>
...
</tr>
</tbody>
比方說我想點擊一個特定月份的所有選項,而點擊其中移動到下一個或前一個月的選項,我用這個
for (var i=1;i<32;i++){
element(by.css('body > div:nth-child(7) > div.calendar.left.single > div.calendar-table > table > tbody td')).element(by.buttonText(i)).click();
}
這是選擇路徑tbody
:body > div:nth-child(7) > div.calendar.left.single > div.calendar-table > table > tbody td
但.element(by.buttonText(i)).click();
不工作我想buttonText心不是工作td
元素
EDITS: 眼下,除了其工作過第二迭代循環時,它給我的錯誤:元素不可見的,而它是可見的...
Page.js
var Page = function() {
var that = this;
//ELEMENTS
this.from = element(by.xpath('//*[@id="html"]/body/app/div/layout/div/app-tabs/div/div/div/div/app-tabs-page/app-tabs-page-content/tcmetadata/div/div/div[1]/div[1]/tc-filters/div/form[2]/div[1]/label/input'));
this.to = element(by.xpath('//*[@id="html"]/body/app/div/layout/div/app-tabs/div/div/div/div/app-tabs-page/app-tabs-page-content/tcmetadata/div/div/div[1]/div[1]/tc-filters/div/form[2]/div[2]/label/input'));
//EVENTS
this.clickElements = function(els){
els.each(function (el){
el.click();
});
}
this.clickElement = function(el){
el.click();
}
};
module.exports = new Page;
test.js:
var page = require('./Page');
it('should ask any question', function() {
for (var i=1;i<15;i++){
page.clickElement(page.from);
element(by.xpath('//*[@id="html"]/body/div[1]/div[1]/div[2]/table/tbody')).element(by.xpath('//td[text()='+i+']')).click();
for (var j=i; j<15;j++){
page.clickElement(page.to);
browser.sleep(1000);
element(by.xpath('//*[@id="html"]/body/div[2]/div[1]/div[2]/table/tbody')).element(by.xpath('//td[text()='+j+']')).click();
}
}
});
第一個循環工程,但,當它進入第二圈我得到一個錯誤 「元素不可見」與browser.sleep我可以看到它的可見
而不是這樣做,我建議,將uniq id添加到每個,並使用'for loop'並稍加修改。 – hgsongra
是的,但日曆使用日曆的Jquery插件呈現,並向所有td添加ID將是非常長的故事 –