当前位置: 首页 > 知识库问答 >
问题:

无法使用xpath定位用于实时更新字段的元素

孟树
2023-03-14

每次请求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;">
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);

如何使用XPath获取请求id?

共有1个答案

步德宇
2023-03-14

实际上,您提供的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用作by.cssselector(“form.itemscreen.addmode”)

 类似资料:
  • 下面是selenium找不到元素的代码。 但不知何故,它失败了,对我不起作用。它总是给我以下例外情况:过时的元素引用:元素未附加到页面文档 添加了--GetElementStextList的代码 感谢任何帮助。谢谢

  • 嗨,我是一个相当新的硒。可以有人请建议如何定位和元素在iframe asi是得到错误下面。 带有Iframe标记的DOM按钮元素的屏幕截图 以前编写的代码

  • 正在获取以下异常消息: Selenium 2.47.1不支持边缘驱动程序instace使用xpath定位元素???请您提供解决方案?

  • 我的AUT有不同的选项卡来测试和验证不同的WebElements,这些选项卡上有几乎相同的属性。我需要验证一个下拉搜索框,并验证下拉列表中的选项。我的脚本找不到这个下拉搜索框,而xpath在firebug中工作得非常好,可以识别搜索框。 显示的错误为: 请告诉我什么可能是错误的,以及为什么Selenium不能使用xpath定位元素,而它在xpath中运行良好。另外,如果我的xpath不正确,请告诉

  • 我试图引用并单击网页上的元素。 我们应该能够使用简单的XPath进行引用。例如 然而,这似乎并不奏效。 我使用的chrome扩展表示该元素不存在。 我的代码找不到元素。 下面是我使用Selenium web驱动程序的Java代码。 以下是错误: 太奇怪了!关于为什么我不能引用元素,或者为什么xPath不exist的任何想法。