因此我使用C#selenium来自动化CRM Dynamics
存在和MS产品它有FF和Chrome的问题所以我必须在IE中运行它(因此IEDriver服务器)
现在性能很糟糕,定位器无法连接,但是在调试中逐步完成时,一切都有效,所以它是一个时间问题
尝试了webdriverwait,但什么也没做 我在驱动程序调用中等待了500毫秒,这改善了一些事情(webdriver似乎正在快速移动到浏览器),但它仍然没有结束。 我甚至在一些缓慢加载的页面上放了一个thread.sleep(1000),这有帮助,但总的来说它仍然会在30%的时间内失败。
任何人都有任何想法如何让这一切更可靠?
<div class="steps ng-scope" ng-transclude="" ng-if="indicatorsPosition === 'top'">
<section class="step ng-scope ng-isolate-scope current" ng-transclude="" ng-class="{current: selected, done: completed}" ng-show="selected" canexit="exitValidation" wz-title="Select Vendor" aria-hidden="false">
<h2 class="ng-scope">Select your Vendor</h2>
<div class="ui-wizard-content ng-scope">
<md-input-container class="md-block flex-gt-sm md-input-has-value" flex-gt-sm="" data-ng-disabled="lockMode=='Y'" aria-disabled="false">
<label class="" for="select_155">Vendor</label>
<!-- Example with a straight select <select data-ng-model="activeData.selectedVendor" ng-options="vendor as vendor.name for vendor in vendors track by vendor.id"> <select> -->
<md-select id="select_155" class="ng-pristine ng-valid ng-not-empty ng-touched" ng-model-options="{trackBy:'$value.SUPPLIER_BUSINESS_ID'}" data-ng-model="activeData.selectedVendor" data-ng-disabled="lockMode=='Y'" style="font-size: 150%;" tabindex="0" aria-label="Select your vendor: DSI MFG " md-labeled-by-tooltip="md-tooltip-154" role="listbox" aria-expanded="false" aria-multiselectable="false" aria-owns="select_container_156" aria-disabled="false" aria-invalid="false">
<md-select-value id="select_value_label_153" class="md-select-value">
<span>
<span class="md-select-icon" aria-hidden="true"/>
</md-select-value>
</md-select>
这个问题不是我的代码,我知道当我通过调试时一切都很好,我更感兴趣,如果有人试图自动化CRM之前,并知道一种方法来解决应用程序本身的糟糕表现,尤其是当加上webdriver的iedriverserver
答案 0 :(得分:0)
您是否尝试过隐式等待?
隐含等待10秒,根据您的要求进行更改。
driver.Manage()。超时().ImplicitWait = TimeSpan.FromSeconds(10);
如果有帮助,请告诉我。
答案 1 :(得分:0)
尝试使用https://github.com/microsoft/easyrepro 在CRM和Selenium之上,他们确实很好地构建了框架。 Haven没有尝试过使用IE浏览器,但却像FF和Chrome一样迷人。