无法使用xpath找到实时更新字段的元素

时间:2016-07-19 13:44:20

标签: selenium-webdriver

每次选择实时更新字段时请求ID都会更改。

我试图通过xpath获取请求ID

这是源代码。

<form id="itemscreen334-33504-" class="itemscreen addMode v_334 ajaxForm form-initialized" method="POST" enctype="multipart/form-data" requestid="18310" style="visibility: visible; opacity: 1;">

Java代码:

WebElement form = driver.findElement(By.xpath("//form[Class='itemscreen addMode v_334 ajaxForm form-initialized')]"));
System.out.println("form-->" + form);
String requestNo = form.getAttribute("requestid");
System.out.println("requestNo----------->" + requestNo);

Selenium错误:

  

线程“main”中的异常   org.openqa.selenium.InvalidSelectorException:给定的选择器   // form [Class ='itemscreen addMode v_334 ajaxForm form-initialized')]是   要么无效,要么不会导致WebElement。以下错误   发生:InvalidSelectorError:无法找到带有的元素   xpath表达式// form [Class ='itemscreen addMode v_334 ajaxForm   form-initialized')]因为以下错误:[例外......“   表达式不是一个合法的表达。“代码:”12“nsresult:   “0x805b0033(SyntaxError)”location:“”]

如何使用xpath获取请求ID?

1 个答案:

答案 0 :(得分:0)

实际上您提供了错误的xpath,您的xpath表达式看起来像cssSelector,请尝试以下操作: -

WebElement form = driver.findElement(By.cssSelector("form.itemscreen.addMode.v_334.ajaxForm.form-initialized"));
String requestNo = form.getAttribute("requestid");
System.out.println("requestNo----------->" + requestNo);

或者,如果您想使用xpath,请尝试使用以下正确的xpath: -

WebElement form = driver.findElement(By.xpath("//form[@class = 'itemscreen addMode v_334 ajaxForm form-initialized']"));
String requestNo = form.getAttribute("requestid");
System.out.println("requestNo----------->" + requestNo);

注意: - 如果您希望与class属性进行部分匹配,则应将xpath用作By.xpath("//form[contains(@class, 'itemscreen addMode')]"),将cssSelector用作{{1} }}