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

Bri*_*ian 4 javascript testing selenium end-to-end protractor

努力选择一个没有标准唯一ID或类的元素。如何使用量角器选择此输入元素?

注意:我不能使用class 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>
Run Code Online (Sandbox Code Playgroud)

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

如果必须通过jquery获取此元素,则可以使用(不是可取的)contains $( "input[name*='Solution_MultiComboSelection_Input']" )。是否有一些可比的方式与量角器一起定位元素?

ale*_*cxe 5

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

element(by.css("input[id*=Solution_MultiComboSelection_Input]"));
element(by.css("input[id$=Solution_MultiComboSelection_Input]"));
Run Code Online (Sandbox Code Playgroud)