javascript - 当值包含时如何通过html属性在 Protractor 中选择元素

标签 javascript selenium testing protractor end-to-end

苦于如何选择没有标准唯一 ID 或类的元素。我将如何使用 Protractor 选择此输入元素?

注意:我不能使用 ComboBoxInput_Default 类,因为这个下拉框用在其他几个页面元素上。对于至少 10 多个 DOM 级别,也没有任何易于识别的父元素。

<div style="display:inline; white-space: nowrap;" id="ctl00_ctl31_g_b56afa08_7869_450c_8871_f6759a89d9b1_ctl00_WPQ3txtFields_ddPositioList_10_Solution_MultiComboSelection" class="ComboBox_Default">
  <input type="text" style="width: 133px; height: 15px;" delimiter=";" class="ComboBoxInput_Default" value="-select-" name="ctl00$ctl31$g_b56afa08_7869_450c_8871_f6759a89d9b1$ctl00$WPQ3txtFields_ddPositioList_10_Solution_MultiComboSelection_Input" id="ctl00_ctl31_g_b56afa08_7869_450c_8871_f6759a89d9b1_ctl00_WPQ3txtFields_ddPositioList_10_Solution_MultiComboSelection_Input" autocomplete="off">    
<div>

使每个输入不同的唯一标识标记附加到生成的 ID 的末尾,Solution_MultiComboSelection_Input

如果我必须使用 jquery 获取此元素,我会使用(不可取)包含 $( "input[name*='Solution_MultiComboSelection_Input']")。有没有一些类似的方法可以用 Protractor 以这种方式定位元素?

最佳答案

当然,使用“包含”或“结尾为”CSS 选择器:

element(by.css("input[id*=Solution_MultiComboSelection_Input]"));
element(by.css("input[id$=Solution_MultiComboSelection_Input]"));

关于javascript - 当值包含时如何通过html属性在 Protractor 中选择元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32059657/

相关文章:

xpath - 处理动态 Xpath

php - 在 Laravel 中测试时如何模拟 time() 函数?

java - 如何进行桌面 Java 应用程序的自动化验收测试?

javascript - Vue js v-if 在共享切换按钮上进行条件渲染

javascript - 是否可以使用客户端生成的 blob url 保存到 Google Drive

java - Selenium 服务器集线器设置为特定的 IP 和端口

http - 在设备上测试 http 连接

javascript - DOM:如何将表格转换为每行包含 2 个列表的表格?

javascript - Uncaught ReferenceError : startPause is not defined for simple button

python - 如何使用 Python 和 Selenium Webdriver 使用 mat-options 查找下拉列表的长度?