javascript - 如何在 Protractor 中按类型、值或 alt 属性定位元素?

标签 javascript protractor

示例 1: 我有一个按钮的 html 代码。

<button class="submit_btn" type="submit" value="Login" ng-disabled="LoginCtrl.loginStatus === LoginCtrl.loginCtrlConfig.LOGIN_LOADING">

使用 Protractor ,如果我不想使用类名,而是使用“类型”或“值”参数。

示例 2:

<img src="someSource" alt="Firewall for Code" width="90" height="46">

我想使用上面的图片的“alt”参数来测试该元素是否位于页面上,因此测试应该通过。

如何在 Protractor 中完成上述两项任务?

最佳答案

您可以/应该使用CSS selectors对元素属性添加过滤条件。

在第一个示例中,可能是:

var submitButton = element(by.css("button[type=submit][value=Login]"));

// element is present
expect(submitButton.isPresent()).toBe(true);

// element is displayed
expect(submitButton.isDisplayed()).toBe(true);

在第二个示例中,它将是:

var sourceImage = element(by.css('img[alt="Firewall for Code"]'));

// element is present
expect(sourceImage.isPresent()).toBe(true);

// element is displayed
expect(sourceImage.isDisplayed()).toBe(true);

请注意,在这种情况下,我们需要在属性值周围加上引号,因为属性值中有空格。以下是有关何时需要报价、何时不需要报价的更多信息:

关于javascript - 如何在 Protractor 中按类型、值或 alt 属性定位元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49877180/

相关文章:

javascript - 如何将对象引用传递给另一个对象?

javascript - AmCharts dataLoader 不加载数据,但将数据粘贴到并使用 dataProvider 工作正常

javascript - Protractor : Issue with using executescript to execute javascript on an element

javascript - 能否使用 Protractor 测试 Knockout 应用程序?

node.js - 使用 Jenkins 运行 Protractor 测试抛出 "Test ` title` 应该是 "string"但给出的是 "function"而不是 .'"

javascript - 如何检测每个页面的加载情况?

javascript - 如何禁用 jQuery 中的提交按钮?

javascript - 显示所有 div 并按类别选择

angularjs - 在 Protractor 中使用 Angular 函数 ($q)

javascript - 如何使用 ng-repeat 选择所有元素,但没有一些类