使用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,区号和Serial#) 我想通过我们的java代码(selenium web driver)
传递一个值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
以上其他字段
是常见的答案 0 :(得分:1)
怎么样
//input[contains(@data-bind, "Serial")]
//input[contains(@data-bind, "area code")]
//input[contains(@data-bind, "Pan No")]
答案 1 :(得分:1)
如果您更喜欢cssSelectors
,以下内容将有效。
css = input[data-bind*='Pan']
css = input[data-bind*='area code']
css = input[data-bind*='Serial']
符号 * 与xpath中的包含相同。
答案 2 :(得分:0)
使用findElements
(带有“s”)。我使用Selenium的Python绑定并且很少编写Java代码(所以下面可能包含错误)但是我想象的是:
List<WebElement> els = driver.findElements(By.cssSelector("input.input-txt"));
els.get(0).sendKeys("acdpp6042c);
els.get(1)... // Do something with the second.
els.get(2)... // Do something with the third.