使用selenium web驱动程序来自动化测试,在我们的应用程序元素(3个输入字段)xpath是相同的,所以我无法传递这三个字段中的值,请找到html
<div class="form-row">
<div class="label-column">
Pan No
</div>
<div class="ctrl-column">
<input class="input-txt" type="text" maxlength="50" data-bind="value: Pan No,qtipValMessage: Pan No" title="">
</div>
</div>
<div class="form-row">
<div class="label-column"> area code </div>
<div class="ctrl-column">
<input class="input-txt" type="text" maxlength="50" data-bind="value: area code, qtipValMessage: area code" title="">
</div>
</div>
<div class="form-row">
<div class="label-column"> Serial # </div>
<div class="ctrl-column">
<input class="input-txt" type="text" maxlength="50" data-bind="value: Serial #" title="">
</div>
上面的 html 有三个输入字段(Pan No、区号和序列号) 我想通过我们的 java 代码(selenium web 驱动程序)传递一个值
driver.findElement(By.cssSelector("input.input-txt")).sendKeys(
"acdpp6042c);
如果我执行上面的一个,它会填充 pan no 字段,这不是问题,但其余字段无法传递值,因为这三个元素标签是相同的, 请建议如何为其余字段生成 xpath
来自开发者工具(chrome)的xpath是:
//*[@id="divInfo"]/table/tbody/tr/td/div[2]/table/tbody/tr/td[1]/div/div[2]/div[2]/input
以上内容对于其余字段来说是常见的
最佳答案
如果您更喜欢cssSelectors
,则以下内容将起作用。
css = input[data-bind*='Pan']
css = input[data-bind*='area code']
css = input[data-bind*='Serial']
符号*与xpath中的包含相同。
关于java - 如果所有元素 xpath 都相同,如何区分元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21729218/