嗨,这里的场景是我想在页面的文本字段中输入一些值,在此之前我需要使用xpath找到文本字段。
所以这里我在excel表中有这些字段的值和xpath。如何使上述代码生效?片段既不起作用也不显示任何错误。
Cell cells = null;
Cell idcell=null;
if (checking.equalsIgnoreCase("xxxxxxxxxxxxx")){
System.out.println("Checking xxxxxxxxxxxx");
if (checking.equalsIgnoreCase("yyyyyyyyyyyy")){
for (int cols = 0; cols < sheet.getColumns(); cols++) {
cells = sheet.getCell(cols, rows);
idcell=sheet.getCell(cols,rows);
WebElement element_BuyCategory = driver.findElement(By.xpath(idcell.getContents()));
element_BuyCategory.sendKeys(cells.getContents());
System.out.println("xpath ok");
}
回应将不胜感激。
答案 0 :(得分:0)
我想你知道如何从上面代码中发布的excel中提取数据。
对于使用XPath在页面中找到文本框的部分,我认为如果你使用CSS-Selectors而不是XPath更容易,因为XPath对于这个领域的新手来说有点困难并且往往会改变。
如果我们使用出现在StackOverflow页面右上角的文本框执行搜索示例,页面中的HTML代码如下:
<input class="textbox" type="text" value="" size="28" maxlength="240" tabindex="1" placeholder="search" name="q" autocomplete="off"></input>
我的建议是使用以下代码:
Cell cells = null;
Cell idcell=null;
if (checking.equalsIgnoreCase("xxxxxxxxxxxxx"))
{
System.out.println("Checking xxxxxxxxxxxx");
if (checking.equalsIgnoreCase("yyyyyyyyyyyy")){
for (int cols = 0; cols < sheet.getColumns(); cols++)
{
cells = sheet.getCell(cols, rows);
idcell = sheet.getCell(cols,rows);
WebElement element_BuyCategory = driver.findElement(
By.cssSelector(
"#search div input.textbox ");
/* Other way is find the element by its name, if its have a name */
WebElement element_BuyCategory_by_Name = driver.findElement(
By.name("q");
element_BuyCategory.sendKeys(cells.getContents());
System.out.println("xpath ok");
}
}
如果在某些情况下你想要使用XPath,你需要用下一行替换找到该元素的行:
/* If it's the only text box with this class or it's the first, I repeat this is a example */
WebElement element_BuyCategory = driver.findElement
By.xpath("//input[contains(@class,'textbox')"));
我希望上面解释的例子可以帮到你。