如何使用“翻译”查找元素?我有一个普通的班级名字。因此,我无法使用类名来查找元素

时间:2018-11-28 11:35:40

标签: javascript angular protractor e2e-testing angularjs-e2e

我具有以下HTML结构。这里Class也用于其他一些地方。请给我一些解决方案。

<div ng-show="addEditBillingCodeForm.form.code.$error.required &amp;&amp; addEditBillingCodeFormSubmitted" class="error-msg ng-scope" translate="MESSAGE_TOOLS_BILLING_CODE_REQ">Specify billing code</div>**strong text** 

2 个答案:

答案 0 :(得分:0)

此解决方案需要jquery:

$("div[translate='MESSAGE_TOOLS_BILLING_CODE_REQ']")

这在实践中可能行不通,因为我想象MESSAGE_TOOLS_BILLING_CODE_REQ打印为是/否(see documentation on translate paramter)。在这种情况下,以下几行可能会起作用,但这并不是很具体,您可能会遇到与当前类似的选择问题。

$("div[translate='no']")
$("div[translate='yes']")

或更具体地讲,也使用现有的类:

$("div.error-msg.ng-scope[translate='no']")
$("div.error-msg.ng-scope[translate='yes']")

最好在周围的HTML结构中找到一些独特的东西。最简单的方法是将唯一的类添加到您要编辑的实例中,否则,父级等通常非常有用。

答案 1 :(得分:0)

如果您只是想查找元素,请使用此选项:

element(by.cssContainingText('div.error-msg.ng-scope','Specify billing code'))