请帮助我在这种情况下找到定位器,因为id是动态的,每当我刷新页面时它都会改变。
型="文本"我也无法使用,因为对于下一个字段,除了代码之外,eveything是相同的,除了标签改变了"名字"到#姓氏"等等。
所以我应该根据下面标签标记中提到的名字选择一些东西。
在这种情况下,请任何人都可以帮助我。
<input class="md-input-element ng-valid ng-dirty ng-touched" id="md-
input-4-input" spellcheck="false" type="text">
<!--template bindings={}-->
<label class="md-input-placeholder md-float md-empty" for="md-input-
4-input">First name * <!--template bindings={}--></label>
答案 0 :(得分:0)
您可以使用preceding-sibling
中的following-sibling
或xpath
功能。根据上面提到的代码,您xpath
应该是这样的:
//input[@type='text'][following-sibling::label[contains(text(),'First name')]]
但我认为在html中label
应首先是input
,如果是这种情况,请尝试以下方法:
//input[@type='text'][preceding-sibling::label[contains(text(),'First name')]]
答案 1 :(得分:0)
你可以从类中获取css选择器(如果类名中有空格,则不能通过className执行,因此请使用css,在开头添加“。”并用“。”替换任何空格。)< / p>
@FindBy(css = ".md-input-element.ng-valid.ng-dirty.ng-touched")
private WebElement elementMDInputTouched;
@FindBy(css = ".md-input-placeholder.md-float.md-empty")
private WebElement elementMDInputEmpty;