2016-05-31 22 views
0

我在angularjs應用程序中有一個iframe。我正在使用switchTo()切換到iframe。 我需要先獲取具有我正在查找的值的表格。我需要從表格中得到收益總額。我需要使用cssContainingText()來查找表內的yieldtotal,因爲表中的所有內容的屬性都是相同的。收益總額可能存在也可能不存在。我使用yieldTotal.isPresent(),但它會拋出一個錯誤,說「window.angular是未定義的,這可能是因爲它不是一個角度應用程序」如何通過文本查找元素並將isPresent()用於使用量角器的非角度應用程序?

我不能使用browser.driver.findElement,因爲我找不到這樣的elementbytext 。

function verifyGrossInvoiceTotal(){ 
    browser.ignoreSynchronization = true; 
    browser.driver.switchTo().frame('viewDocumentInFrame'); 
var ProductTable = $('table.invoice-details')); 
    var sum = 0; 
    var YieldTotal = ProductTable .element(by.cssContainingText('td', 'Yield Total')).element(by.xpath('..')); 
    **YieldTotal.isPresent()**.then(function (isPresent){ 
    if(isPresent){ 
     var totalAmount = YieldTotal .$$('td').get(3); 
     totalAmount.getText().then(function (text) { 
      text = parseFloat(text.replace(/[^0-9.]/g, '')).toFixed(2); 
      sum = parseFloat(sum) + parseFloat(text); 

     }); 
    } 
    }); 
    }); 

回答

0

我想這是因爲td不直接ProductTable下。你可以嘗試下面的東西嗎?基本上'table.invoice-details td' CSS手段,狼狽不堪td隨時隨地table.invoice-details

function verifyGrossInvoiceTotal(){ 
    browser.ignoreSynchronization = true; 
    browser.driver.switchTo().frame('viewDocumentInFrame'); 
    var sum = 0; 
    var YieldTotal = element(by.cssContainingText('table.invoice-details td', 'Yield Total')); 
    YieldTotal.isPresent().then(function (isPresent){ 
    if(isPresent){ 
     var totalAmount = YieldTotal .$$('td').get(3); 
     totalAmount.getText().then(function (text) { 
      text = parseFloat(text.replace(/[^0-9.]/g, '')).toFixed(2); 
      sum = parseFloat(sum) + parseFloat(text); 

     }); 
    } 
    }); 
}); 
相關問題