Python Pyright通过_model()查找_元素_缺少1个必需的位置参数:“描述符”

Python Pyright通过_model()查找_元素_缺少1个必需的位置参数:“描述符”,python,angularjs,selenium,protractor,selenium-iedriver,Python,Angularjs,Selenium,Protractor,Selenium Iedriver,我正在编写自动脚本来处理角度应用程序和非角度应用程序——事实上,一旦浏览器打开,在使用角度应用程序进入所需页面之前,它会有一些重新指示。我可以通过超时和selenium来处理它,但是我找不到ng模型元素。我现在正在尝试: 代码更新 此外,由于同步,页面不会进一步加载 最后,我收到了: AngularNotFoundException:消息:在第页上找不到Angular:链接:重试查找AngularNotFoundException 有什么建议吗 先谢谢你 我尝试参加的web部件的结构是stars

我正在编写自动脚本来处理角度应用程序和非角度应用程序——事实上,一旦浏览器打开,在使用角度应用程序进入所需页面之前,它会有一些重新指示。我可以通过超时和selenium来处理它,但是我找不到ng模型元素。我现在正在尝试:

代码更新

此外,由于同步,页面不会进一步加载

最后,我收到了:

AngularNotFoundException:消息:在第页上找不到Angular:链接:重试查找AngularNotFoundException

有什么建议吗

先谢谢你

我尝试参加的web部件的结构是stars************:

<div class="table-scrollInvoice">



            <table ng-show="true" class="table-bordered tableInvoice">
                <tbody><tr>
                    <th class="thCustomInvoice"><input ng-disabled="disableAllBaseOnStage" type="checkbox" ng-model="selectedAll" ng-click="checkAll()" class="ng-pristine ng-untouched ng-valid"></th>
                    <th class="thCustomInvoice">WBSE Number</th>
                    <th class="thCustomInvoice">WBSE Description</th>
                    <th class="thCustomInvoice">Project Profile</th>
                    <th class="thCustomInvoice">Line Item - Material Code Details <a style="margin-left: 15px;" href="#" class="btn-icon icon-info" title="" data-original-title="The field 'Line Item - Material Code Details' is a mandatory field"></a></th>
                    <th class="thCustomInvoice ng-hide" ng-show="hideTimeSupply">Time of Supply</th>
                    <th class="thCustomInvoice ng-binding">Material Sales Text / Line Item Text</th>
                    <th class="thCustomInvoice" ng-show="hideQuantity">Quantity</th>
                    <th class="thCustomInvoice ng-hide" ng-show="false">Display Quantity?</th>
                    <th class="thCustomInvoice">Material Code Type</th>             
                    <th class="thCustomInvoice ng-hide" ng-show="hideAdditional">Additional Information</th>
                    <th class="thCustomInvoice ng-hide" ng-show="false">Line Item Category</th>
                    <th class="thCustomInvoice ng-hide" ng-show="false">Tax</th>
                    <th class="thCustomInvoice ng-hide" ng-show="false">Condition Type</th>         
                    <th class="thCustomInvoice">Amount</th>                                     
                    <th class="thCustomInvoice">Are you contractually obligated to bill reimbursable expenses as services revenue? (This is not common)</th>
                    <th class="thCustomInvoice">Amount of expenses to bill as fees</th>
                    <th class="thCustomInvoice ng-hide" ng-show="false">Condition Type 2</th></tr>
                <!-- ngRepeat: costObj in invoice --><tr ng-repeat="costObj in invoice" class="ng-scope">
                    <td><input class="checkBoxInvoice ng-pristine ng-untouched ng-valid" ng-disabled="disableAllBaseOnStage" type="checkbox" ng-model="costObj.selected" ng-change="checkBoxEnablrBtn()"></td>

                    <td>
                        <select class="myTLocalDrop ng-pristine ng-untouched ng-valid" ng-disabled="disableAllBaseOnStage" ng-model="costObj.selectedName" ng-change="callSapWEb(costObj.selectedName ,$index, costObj)" ng-options="wbsnum.idWbs as wbsnum.nameWbs for wbsnum in names"><option value="" class="">-- None --</option><option value="0" selected="selected" label="A6WG1001">A6WG1001</option></select></td>
                    <td><input class="myDescription ng-pristine ng-untouched ng-valid" ng-disabled="true" ng-model="costObj.Description" disabled="disabled"></td>

                    <td>
                        <select class="myTLocalDrop ng-pristine ng-untouched ng-valid" ng-disabled="true" ng-model="costObj.selectedProfile" ng-change="onChangeProf(costObj.selectedProfile , $index)" ng-options="prof.id as prof.name for prof in profile" disabled="disabled"><option value="" class="">-- None --</option><option value="0" selected="selected" label="Consulting">Consulting</option><option value="1" label="Outsourcing">Outsourcing</option></select></td>




                    <td>
                        <select ng-disabled="disableAllBaseOnStage" class="myTdropDownLineItem ng-pristine ng-untouched ng-valid" ng-model="costObj.MaterialCodeDetails" ng-change="onChangeLineItem(costObj.MaterialCodeDetails,costObj.selectedName,$index)" ng-options="materialLine.nameContract as materialLine.nameContract for materialLine in costObj.materialLineDetails"><option value="" class="">-- None --</option><option value="0" selected="selected" label="000010 - S00600 - Services">000010 - S00600 - Services</option><option value="1" label="000020 - S06600 - Reimbursable Expenses">000020 - S06600 - Reimbursable Expenses</option></select></td>

                    <td ng-show="hideTimeSupply" class="ng-hide"><input placeholder="YYYY-MM-DD" class="DatePicker ng-pristine ng-untouched ng-valid ng-valid-maxlength" type="text" maxlength="10" ng-disabled="disableAllBaseOnStage" ng-model="costObj.TimeOfSupply" ng-blur="dateValidator(costObj.TimeOfSupply,$index)"></td>



                    <td><textarea class="mySalesText ng-pristine ng-untouched ng-valid" ng-model="costObj.MaterialSales" ng-blur="everyChangeOfFieldInvoice()" ng-disabled="disableMaterialSales"></textarea></td>


             <td ng-show="hideQuantity"><input class="myTLocalDrop ng-pristine ng-untouched ng-valid" ng-disabled="disableAllBaseOnStage" ng-model="costObj.Quantity" ng-blur="getValueAmount()"></td>      

                    <td ng-show="false" class="ng-hide">
                        <select class="myTLocalDrop ng-pristine ng-untouched ng-valid" ng-model="costObj.DisplayQuantity" ng-disabled="disableAllBaseOnStage" ng-options="displayQuan.id as displayQuan.name  for displayQuan in displayQuantity"><option value="0" label="Yes">Yes</option><option value="1" selected="selected" label="No">No</option></select></td>



                    <td>
                        <select class="myTLocalDrop ng-pristine ng-untouched ng-valid" ng-model="costObj.MaterialType" ng-disabled="true" ng-change="onChangeMaterialTypeVal(costObj.MaterialType, $index)" ng-options="materialTypes.id as materialTypes.name for materialTypes in materialTypeVal" disabled="disabled"><option value="" class="">-- None --</option><option value="0" selected="selected" label="Fees">Fees</option><option value="1" label="Expenses">Expenses</option></select></td>

                    **<td ng-show="hideAdditional" class="ng-hide"><textarea class="myTLocalDropAddInformation ng-pristine ng-untouched ng-valid" ng-disabled="disableAllBaseOnStage" ng-model="costObj.Additional"></textarea></td>**
                    <td class="myTdInvoice ng-hide" ng-show="false"><input ng-model="costObj.LineItemCategory" class="ng-pristine ng-untouched ng-valid"></td>
                    <td class="myTdInvoice ng-hide" ng-show="false"><input ng-model="costObj.Tax" class="ng-pristine ng-untouched ng-valid"></td>       
                    <td class="myTdInvoice ng-hide" ng-show="false"><input ng-model="costObj.ConditionType" class="ng-pristine ng-untouched ng-valid"></td>
                    *****************<td><input class="myTLocalDrop ng-pristine ng-valid ng-touched" ng-disabled="disableAllBaseOnStage" ng-model="costObj.Amount" ng-blur="getValueAmount()"></td>********************
                    <td>
                        <select class="myTLocalDropContratually ng-pristine ng-untouched ng-valid" ng-model="costObj.Contractually" ng-change="contractuallyCall(costObj.Contractually,$index)" ng-disabled="costObj.disableContractually" ng-options="contractually for contractually in contractuallyYesNo"><option value="" class="">-- None --</option><option value="0" label="Yes">Yes</option><option value="1" selected="selected" label="No">No</option></select></td>
                    <td><input class="myTLocalDrop ng-pristine ng-untouched ng-valid" ng-change="onChangeEpenseBill(costObj.expensesTobill,$index)" ng-disabled="costObj.disableExpense" ng-model="costObj.expensesTobill" disabled="disabled"></td>            
                    <td class="myTdInvoice ng-hide" ng-show="false"><input ng-model="costObj.ConditionType2" class="ng-pristine ng-untouched ng-valid"></td></tr><!-- end ngRepeat: costObj in invoice --><tr ng-repeat="costObj in invoice" class="ng-scope">
                    <td><input class="checkBoxInvoice ng-pristine ng-untouched ng-valid" ng-disabled="disableAllBaseOnStage" type="checkbox" ng-model="costObj.selected" ng-change="checkBoxEnablrBtn()"></td>

                    <td>
                        <select class="myTLocalDrop ng-pristine ng-untouched ng-valid" ng-disabled="disableAllBaseOnStage" ng-model="costObj.selectedName" ng-change="callSapWEb(costObj.selectedName ,$index, costObj)" ng-options="wbsnum.idWbs as wbsnum.nameWbs for wbsnum in names"><option value="" class="">-- None --</option><option value="0" selected="selected" label="A6WG1001">A6WG1001</option></select></td>
                    <td><input class="myDescription ng-pristine ng-untouched ng-valid" ng-disabled="true" ng-model="costObj.Description" disabled="disabled"></td>

                    <td>
                        <select class="myTLocalDrop ng-pristine ng-untouched ng-valid" ng-disabled="true" ng-model="costObj.selectedProfile" ng-change="onChangeProf(costObj.selectedProfile , $index)" ng-options="prof.id as prof.name for prof in profile" disabled="disabled"><option value="" class="">-- None --</option><option value="0" selected="selected" label="Consulting">Consulting</option><option value="1" label="Outsourcing">Outsourcing</option></select></td>




                    <td>
                        <select ng-disabled="disableAllBaseOnStage" class="myTdropDownLineItem ng-pristine ng-untouched ng-valid" ng-model="costObj.MaterialCodeDetails" ng-change="onChangeLineItem(costObj.MaterialCodeDetails,costObj.selectedName,$index)" ng-options="materialLine.nameContract as materialLine.nameContract for materialLine in costObj.materialLineDetails"><option value="" class="">-- None --</option><option value="0" label="000010 - S00600 - Services">000010 - S00600 - Services</option><option value="1" label="000020 - S06600 - Reimbursable Expenses">000020 - S06600 - Reimbursable Expenses</option></select></td>

                    <td ng-show="hideTimeSupply" class="ng-hide"><input placeholder="YYYY-MM-DD" class="DatePicker ng-pristine ng-untouched ng-valid ng-valid-maxlength" type="text" maxlength="10" ng-disabled="disableAllBaseOnStage" ng-model="costObj.TimeOfSupply" ng-blur="dateValidator(costObj.TimeOfSupply,$index)"></td>



                    <td><textarea class="mySalesText ng-pristine ng-untouched ng-valid" ng-model="costObj.MaterialSales" ng-blur="everyChangeOfFieldInvoice()" ng-disabled="disableMaterialSales"></textarea></td>


             <td ng-show="hideQuantity"><input class="myTLocalDrop ng-pristine ng-untouched ng-valid" ng-disabled="disableAllBaseOnStage" ng-model="costObj.Quantity" ng-blur="getValueAmount()"></td>      

                    <td ng-show="false" class="ng-hide">
                        <select class="myTLocalDrop ng-pristine ng-untouched ng-valid" ng-model="costObj.DisplayQuantity" ng-disabled="disableAllBaseOnStage" ng-options="displayQuan.id as displayQuan.name  for displayQuan in displayQuantity"><option value="0" label="Yes">Yes</option><option value="1" selected="selected" label="No">No</option></select></td>



                    <td>
                        <select class="myTLocalDrop ng-pristine ng-untouched ng-valid" ng-model="costObj.MaterialType" ng-disabled="true" ng-change="onChangeMaterialTypeVal(costObj.MaterialType, $index)" ng-options="materialTypes.id as materialTypes.name for materialTypes in materialTypeVal" disabled="disabled"><option value="" class="">-- None --</option><option value="0" label="Fees">Fees</option><option value="1" label="Expenses">Expenses</option></select></td>

                    <td ng-show="hideAdditional" class="ng-hide"><textarea class="myTLocalDropAddInformation ng-pristine ng-untouched ng-valid" ng-disabled="disableAllBaseOnStage" ng-model="costObj.Additional"></textarea></td>
                    <td class="myTdInvoice ng-hide" ng-show="false"><input ng-model="costObj.LineItemCategory" class="ng-pristine ng-untouched ng-valid"></td>
                    <td class="myTdInvoice ng-hide" ng-show="false"><input ng-model="costObj.Tax" class="ng-pristine ng-untouched ng-valid"></td>       
                    <td class="myTdInvoice ng-hide" ng-show="false"><input ng-model="costObj.ConditionType" class="ng-pristine ng-untouched ng-valid"></td>
                    ******************<td><input class="myTLocalDrop ng-pristine ng-untouched ng-valid" ng-disabled="disableAllBaseOnStage" ng-model="costObj.Amount" ng-blur="getValueAmount()"></td>  *****************
                    <td>
                        <select class="myTLocalDropContratually ng-pristine ng-untouched ng-valid" ng-model="costObj.Contractually" ng-change="contractuallyCall(costObj.Contractually,$index)" ng-disabled="costObj.disableContractually" ng-options="contractually for contractually in contractuallyYesNo" disabled="disabled"><option value="" class="">-- None --</option><option value="0" label="Yes">Yes</option><option value="1" label="No">No</option></select></td>
                    <td><input class="myTLocalDrop ng-pristine ng-untouched ng-valid" ng-change="onChangeEpenseBill(costObj.expensesTobill,$index)" ng-disabled="costObj.disableExpense" ng-model="costObj.expensesTobill" disabled="disabled"></td>            
                    <td class="myTdInvoice ng-hide" ng-show="false"><input ng-model="costObj.ConditionType2" class="ng-pristine ng-untouched ng-valid"></td></tr><!-- end ngRepeat: costObj in invoice --></tbody></table>
            <br><br></div>
而不是

wd.ignoreSynchronization=True

试一试


ignoreSynchronization已被弃用,最终将不再可用。有可能不起作用

更新了代码,仍然需要帮助尝试添加wd.waitForAngularEnabledfalse;在那之前。get@JeremyKahan我已经更新了它'wd=Iebase\u url=,script\u timeout=50 wd.ignoreSynchronization=True wd.wait\u for\u angular=False wd.get'link'time.sleep40',但是出现了同样的问题:我不确定直接为\u angular设置wait\u是否与我建议的调用相同,但是查看他们的代码,我看到了不推荐的?ignoreSynchronization的设置应该已经进行了我建议的调用,所以它一定是其他的。这里有一个想法。有时候,改变环境需要时间,所以可能需要在开始之前睡觉。@JeremyKahan仍然不走运。如果我有wd.ignore_synchronization=True,它会停止对页面进行重定向。提姆在得到之前也没有帮助。此外,我尝试过:wd.wait\u for\u angular以及wd.set\u script\u timeout。毫无理由,它会忽略所有这些超时…相同的AngularNotFoundException。看起来脚本忽略了所有这些方法和函数,并直接跳转到获取url。是否有其他方法可以在web上查找angularJS元素?当您不在angularJS页面上时,选择器与selenium类似,例如:browser.driver.findElementby.idid。你不能使用元素。是的,我知道。如果我只使用selenium,我可以访问该页面。但是页面有棱角形状,我需要访问它。这就是为什么我要用pytractor。每次打开第一个重定向页面时,它都会停止脚本,该页面中没有角度JS。。。我需要告诉pytractor等待页面加载,而上面的所有方法都不起作用,不幸的是页面上的元素如下所示:。我曾尝试通过selenium的find by class访问它-在您应该执行的每个角度页面操作之前,我都失败了:browser.waitForAngularEnabledtrue;
<div class="table-scrollInvoice">



            <table ng-show="true" class="table-bordered tableInvoice">
                <tbody><tr>
                    <th class="thCustomInvoice"><input ng-disabled="disableAllBaseOnStage" type="checkbox" ng-model="selectedAll" ng-click="checkAll()" class="ng-pristine ng-untouched ng-valid"></th>
                    <th class="thCustomInvoice">WBSE Number</th>
                    <th class="thCustomInvoice">WBSE Description</th>
                    <th class="thCustomInvoice">Project Profile</th>
                    <th class="thCustomInvoice">Line Item - Material Code Details <a style="margin-left: 15px;" href="#" class="btn-icon icon-info" title="" data-original-title="The field 'Line Item - Material Code Details' is a mandatory field"></a></th>
                    <th class="thCustomInvoice ng-hide" ng-show="hideTimeSupply">Time of Supply</th>
                    <th class="thCustomInvoice ng-binding">Material Sales Text / Line Item Text</th>
                    <th class="thCustomInvoice" ng-show="hideQuantity">Quantity</th>
                    <th class="thCustomInvoice ng-hide" ng-show="false">Display Quantity?</th>
                    <th class="thCustomInvoice">Material Code Type</th>             
                    <th class="thCustomInvoice ng-hide" ng-show="hideAdditional">Additional Information</th>
                    <th class="thCustomInvoice ng-hide" ng-show="false">Line Item Category</th>
                    <th class="thCustomInvoice ng-hide" ng-show="false">Tax</th>
                    <th class="thCustomInvoice ng-hide" ng-show="false">Condition Type</th>         
                    <th class="thCustomInvoice">Amount</th>                                     
                    <th class="thCustomInvoice">Are you contractually obligated to bill reimbursable expenses as services revenue? (This is not common)</th>
                    <th class="thCustomInvoice">Amount of expenses to bill as fees</th>
                    <th class="thCustomInvoice ng-hide" ng-show="false">Condition Type 2</th></tr>
                <!-- ngRepeat: costObj in invoice --><tr ng-repeat="costObj in invoice" class="ng-scope">
                    <td><input class="checkBoxInvoice ng-pristine ng-untouched ng-valid" ng-disabled="disableAllBaseOnStage" type="checkbox" ng-model="costObj.selected" ng-change="checkBoxEnablrBtn()"></td>

                    <td>
                        <select class="myTLocalDrop ng-pristine ng-untouched ng-valid" ng-disabled="disableAllBaseOnStage" ng-model="costObj.selectedName" ng-change="callSapWEb(costObj.selectedName ,$index, costObj)" ng-options="wbsnum.idWbs as wbsnum.nameWbs for wbsnum in names"><option value="" class="">-- None --</option><option value="0" selected="selected" label="A6WG1001">A6WG1001</option></select></td>
                    <td><input class="myDescription ng-pristine ng-untouched ng-valid" ng-disabled="true" ng-model="costObj.Description" disabled="disabled"></td>

                    <td>
                        <select class="myTLocalDrop ng-pristine ng-untouched ng-valid" ng-disabled="true" ng-model="costObj.selectedProfile" ng-change="onChangeProf(costObj.selectedProfile , $index)" ng-options="prof.id as prof.name for prof in profile" disabled="disabled"><option value="" class="">-- None --</option><option value="0" selected="selected" label="Consulting">Consulting</option><option value="1" label="Outsourcing">Outsourcing</option></select></td>




                    <td>
                        <select ng-disabled="disableAllBaseOnStage" class="myTdropDownLineItem ng-pristine ng-untouched ng-valid" ng-model="costObj.MaterialCodeDetails" ng-change="onChangeLineItem(costObj.MaterialCodeDetails,costObj.selectedName,$index)" ng-options="materialLine.nameContract as materialLine.nameContract for materialLine in costObj.materialLineDetails"><option value="" class="">-- None --</option><option value="0" selected="selected" label="000010 - S00600 - Services">000010 - S00600 - Services</option><option value="1" label="000020 - S06600 - Reimbursable Expenses">000020 - S06600 - Reimbursable Expenses</option></select></td>

                    <td ng-show="hideTimeSupply" class="ng-hide"><input placeholder="YYYY-MM-DD" class="DatePicker ng-pristine ng-untouched ng-valid ng-valid-maxlength" type="text" maxlength="10" ng-disabled="disableAllBaseOnStage" ng-model="costObj.TimeOfSupply" ng-blur="dateValidator(costObj.TimeOfSupply,$index)"></td>



                    <td><textarea class="mySalesText ng-pristine ng-untouched ng-valid" ng-model="costObj.MaterialSales" ng-blur="everyChangeOfFieldInvoice()" ng-disabled="disableMaterialSales"></textarea></td>


             <td ng-show="hideQuantity"><input class="myTLocalDrop ng-pristine ng-untouched ng-valid" ng-disabled="disableAllBaseOnStage" ng-model="costObj.Quantity" ng-blur="getValueAmount()"></td>      

                    <td ng-show="false" class="ng-hide">
                        <select class="myTLocalDrop ng-pristine ng-untouched ng-valid" ng-model="costObj.DisplayQuantity" ng-disabled="disableAllBaseOnStage" ng-options="displayQuan.id as displayQuan.name  for displayQuan in displayQuantity"><option value="0" label="Yes">Yes</option><option value="1" selected="selected" label="No">No</option></select></td>



                    <td>
                        <select class="myTLocalDrop ng-pristine ng-untouched ng-valid" ng-model="costObj.MaterialType" ng-disabled="true" ng-change="onChangeMaterialTypeVal(costObj.MaterialType, $index)" ng-options="materialTypes.id as materialTypes.name for materialTypes in materialTypeVal" disabled="disabled"><option value="" class="">-- None --</option><option value="0" selected="selected" label="Fees">Fees</option><option value="1" label="Expenses">Expenses</option></select></td>

                    **<td ng-show="hideAdditional" class="ng-hide"><textarea class="myTLocalDropAddInformation ng-pristine ng-untouched ng-valid" ng-disabled="disableAllBaseOnStage" ng-model="costObj.Additional"></textarea></td>**
                    <td class="myTdInvoice ng-hide" ng-show="false"><input ng-model="costObj.LineItemCategory" class="ng-pristine ng-untouched ng-valid"></td>
                    <td class="myTdInvoice ng-hide" ng-show="false"><input ng-model="costObj.Tax" class="ng-pristine ng-untouched ng-valid"></td>       
                    <td class="myTdInvoice ng-hide" ng-show="false"><input ng-model="costObj.ConditionType" class="ng-pristine ng-untouched ng-valid"></td>
                    *****************<td><input class="myTLocalDrop ng-pristine ng-valid ng-touched" ng-disabled="disableAllBaseOnStage" ng-model="costObj.Amount" ng-blur="getValueAmount()"></td>********************
                    <td>
                        <select class="myTLocalDropContratually ng-pristine ng-untouched ng-valid" ng-model="costObj.Contractually" ng-change="contractuallyCall(costObj.Contractually,$index)" ng-disabled="costObj.disableContractually" ng-options="contractually for contractually in contractuallyYesNo"><option value="" class="">-- None --</option><option value="0" label="Yes">Yes</option><option value="1" selected="selected" label="No">No</option></select></td>
                    <td><input class="myTLocalDrop ng-pristine ng-untouched ng-valid" ng-change="onChangeEpenseBill(costObj.expensesTobill,$index)" ng-disabled="costObj.disableExpense" ng-model="costObj.expensesTobill" disabled="disabled"></td>            
                    <td class="myTdInvoice ng-hide" ng-show="false"><input ng-model="costObj.ConditionType2" class="ng-pristine ng-untouched ng-valid"></td></tr><!-- end ngRepeat: costObj in invoice --><tr ng-repeat="costObj in invoice" class="ng-scope">
                    <td><input class="checkBoxInvoice ng-pristine ng-untouched ng-valid" ng-disabled="disableAllBaseOnStage" type="checkbox" ng-model="costObj.selected" ng-change="checkBoxEnablrBtn()"></td>

                    <td>
                        <select class="myTLocalDrop ng-pristine ng-untouched ng-valid" ng-disabled="disableAllBaseOnStage" ng-model="costObj.selectedName" ng-change="callSapWEb(costObj.selectedName ,$index, costObj)" ng-options="wbsnum.idWbs as wbsnum.nameWbs for wbsnum in names"><option value="" class="">-- None --</option><option value="0" selected="selected" label="A6WG1001">A6WG1001</option></select></td>
                    <td><input class="myDescription ng-pristine ng-untouched ng-valid" ng-disabled="true" ng-model="costObj.Description" disabled="disabled"></td>

                    <td>
                        <select class="myTLocalDrop ng-pristine ng-untouched ng-valid" ng-disabled="true" ng-model="costObj.selectedProfile" ng-change="onChangeProf(costObj.selectedProfile , $index)" ng-options="prof.id as prof.name for prof in profile" disabled="disabled"><option value="" class="">-- None --</option><option value="0" selected="selected" label="Consulting">Consulting</option><option value="1" label="Outsourcing">Outsourcing</option></select></td>




                    <td>
                        <select ng-disabled="disableAllBaseOnStage" class="myTdropDownLineItem ng-pristine ng-untouched ng-valid" ng-model="costObj.MaterialCodeDetails" ng-change="onChangeLineItem(costObj.MaterialCodeDetails,costObj.selectedName,$index)" ng-options="materialLine.nameContract as materialLine.nameContract for materialLine in costObj.materialLineDetails"><option value="" class="">-- None --</option><option value="0" label="000010 - S00600 - Services">000010 - S00600 - Services</option><option value="1" label="000020 - S06600 - Reimbursable Expenses">000020 - S06600 - Reimbursable Expenses</option></select></td>

                    <td ng-show="hideTimeSupply" class="ng-hide"><input placeholder="YYYY-MM-DD" class="DatePicker ng-pristine ng-untouched ng-valid ng-valid-maxlength" type="text" maxlength="10" ng-disabled="disableAllBaseOnStage" ng-model="costObj.TimeOfSupply" ng-blur="dateValidator(costObj.TimeOfSupply,$index)"></td>



                    <td><textarea class="mySalesText ng-pristine ng-untouched ng-valid" ng-model="costObj.MaterialSales" ng-blur="everyChangeOfFieldInvoice()" ng-disabled="disableMaterialSales"></textarea></td>


             <td ng-show="hideQuantity"><input class="myTLocalDrop ng-pristine ng-untouched ng-valid" ng-disabled="disableAllBaseOnStage" ng-model="costObj.Quantity" ng-blur="getValueAmount()"></td>      

                    <td ng-show="false" class="ng-hide">
                        <select class="myTLocalDrop ng-pristine ng-untouched ng-valid" ng-model="costObj.DisplayQuantity" ng-disabled="disableAllBaseOnStage" ng-options="displayQuan.id as displayQuan.name  for displayQuan in displayQuantity"><option value="0" label="Yes">Yes</option><option value="1" selected="selected" label="No">No</option></select></td>



                    <td>
                        <select class="myTLocalDrop ng-pristine ng-untouched ng-valid" ng-model="costObj.MaterialType" ng-disabled="true" ng-change="onChangeMaterialTypeVal(costObj.MaterialType, $index)" ng-options="materialTypes.id as materialTypes.name for materialTypes in materialTypeVal" disabled="disabled"><option value="" class="">-- None --</option><option value="0" label="Fees">Fees</option><option value="1" label="Expenses">Expenses</option></select></td>

                    <td ng-show="hideAdditional" class="ng-hide"><textarea class="myTLocalDropAddInformation ng-pristine ng-untouched ng-valid" ng-disabled="disableAllBaseOnStage" ng-model="costObj.Additional"></textarea></td>
                    <td class="myTdInvoice ng-hide" ng-show="false"><input ng-model="costObj.LineItemCategory" class="ng-pristine ng-untouched ng-valid"></td>
                    <td class="myTdInvoice ng-hide" ng-show="false"><input ng-model="costObj.Tax" class="ng-pristine ng-untouched ng-valid"></td>       
                    <td class="myTdInvoice ng-hide" ng-show="false"><input ng-model="costObj.ConditionType" class="ng-pristine ng-untouched ng-valid"></td>
                    ******************<td><input class="myTLocalDrop ng-pristine ng-untouched ng-valid" ng-disabled="disableAllBaseOnStage" ng-model="costObj.Amount" ng-blur="getValueAmount()"></td>  *****************
                    <td>
                        <select class="myTLocalDropContratually ng-pristine ng-untouched ng-valid" ng-model="costObj.Contractually" ng-change="contractuallyCall(costObj.Contractually,$index)" ng-disabled="costObj.disableContractually" ng-options="contractually for contractually in contractuallyYesNo" disabled="disabled"><option value="" class="">-- None --</option><option value="0" label="Yes">Yes</option><option value="1" label="No">No</option></select></td>
                    <td><input class="myTLocalDrop ng-pristine ng-untouched ng-valid" ng-change="onChangeEpenseBill(costObj.expensesTobill,$index)" ng-disabled="costObj.disableExpense" ng-model="costObj.expensesTobill" disabled="disabled"></td>            
                    <td class="myTdInvoice ng-hide" ng-show="false"><input ng-model="costObj.ConditionType2" class="ng-pristine ng-untouched ng-valid"></td></tr><!-- end ngRepeat: costObj in invoice --></tbody></table>
            <br><br></div>
browser.waitForAngularEnabled(false);