每次选择实时更新字段时请求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?
答案 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} }}