如何在td中使用css和特定文本选择表内的td元素

时间:2016-08-15 08:46:24

标签: protractor

让我们说我有以下tbody代表这个日历中的日历我有很多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();
        }

这是tbodybody > div:nth-child(7) > div.calendar.left.single > div.calendar-table > table > tbody td

的选择器路径

但是.element(by.buttonText(i)).click();不起作用我想buttonText不适用于td元素

编辑: 现在它的工作除了在迭代第二个循环时它给了我错误:元素在可见时不可见......

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();
            }

        }

    });

第一个循环有效但是当它进入第二个循环时我得到一个错误 &#34;元素不可见&#34;使用browser.sleep,我可以看到它的可见

0 个答案:

没有答案