我正在尝试从下拉列表中选择特定公司进行自动化测试。我需要每次都能选择完全相同的公司。我当前拥有的脚本仅选择列表中的第二个子级,因此,如果列表被更新或更改,脚本将中断,因此我想找到一种方法来选择我想要的确切公司,而不管它在列表中的位置。当我在列表中查看公司名称时,这就是Chrome中的Inspect Element显示的内容。在这种情况下,公司为Test Master。网站主要是AngularJS。
<span class="company-name ng-binding" bind-html-unsafe="match.model.name.length > 40 ? (match.model.name.substr(0,40) + '...').toLowerCase() : match.model.name.toLowerCase() | typeaheadHighlight:query"><strong>test master</strong></span>
通过文本找到它:
element(by.xpath("//span[contains(@class, 'company-name')]/strong[. = 'test master']").click();
或者,您可以span
使用company-name
class获取所有元素,然后根据模型值过滤所需的元素:
element.all(by.css("span.company-name")).filter(function (company) {
return company.evaluate("match.model.name").then(function (companyName) {
return companyName === "test master";
});
}).first().click();
您可能还需要等待元素变为可点击状态:
var company = element(by.xpath("//span[contains(@class, 'company-name')]/strong[. = 'test master']");
var EC = protractor.ExpectedConditions;
browser.wait(EC.elementToBeClickable(company), 5000);
company.click();
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句