java - XPath通过类名查找子节点

标签 java selenium xpath

好的,所以我有一个多重自动输入,对于 selenium 来说,需要我在其中输入一些文本,然后等到列表可见并按 Tab 键。

我使用以下代码执行此操作:

we.sendKeys(initialInput);
wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//*[@id=\"ui-id-1\"]")));
we.sendKeys(Keys.TAB);

这是一个接收 WebElement 的方法,我们是多重自动输入的输入区域。

HTML 如下:

<ul id="contactPersonDataWrap" class="inputAutoText tagit" data-id="contactPersonData" data-what="contactPersonDataGeneral" data-strict="1" data-max-tags="1" data-events="" data-extra-params="branchData" data-max-length="1000">
  <li class="tagit-new">
    <input class="tagit-input ui-autocomplete-input" type="text" maxlength="1000" name="contactPersonDataInput" autocomplete="off">
  </li>
    <ul id="ui-id-3" tabindex="0" class="ui-menu ui-widget ui-widget-content ui-autocomplete ui-front" style="display: none;">  
  </ul>
</ul>

这是第二个,第一个完全相同,但 id 是 ui-id-1 并且输入的名称也不同。

我想要一个即使在有 N 个页面的页面中也能工作的解决方案,只要给定输入的 WebElement,我就可以简单地等待列表加载。

最佳答案

我希望我的理解是正确的,您需要一个通用的 xpath 来在输入数据后识别任何列表。

你可以有你的xpath,试试这个xpath:

   //ul[contains(@class,'inputAutoText')]//ul[contains(@class,'ui-autocomplete ui-front') and contains(@id,'ui-id-')]

希望这有帮助。

谢谢

关于java - XPath通过类名查找子节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46092680/

相关文章:

java - 单击按钮后变量不持久

java - 我应该使用哪个注释在 GAE 端点上上传图像?

java - 我的 if 语句中的 boolean 值有问题

php - 为什么 Selenium RC 看不到虚拟机上的站点

c# - 通过 XPath 和 HtmlAgilityPack 获取属性值

python lxml xpath无法解析撇号引号

javax.sound.sampled.LineUnavailableException : line with format PCM_SIGNED 16000. 0 Hz,16 位,单声道,2 字节/帧

java - NoSuchMethodError : org. openqa.selenium.os.CommandLine.waitFor(J)V 与 webdriver v2.45.0 和 FF v33

python - 如果鼠标在浏览器 session 的主显示器上,为什么 Selenium 运行速度会变慢

excel - VBA - 获取标签名称的 XPath 语法是什么