java - 通过遍历<tr id>从后代标签的getAttribute中获取ID,然后遍历到td,然后输入标签以获取其id

标签 java selenium xpath css-selectors webdriverwait

我尝试了很多方法,其中一些在 chrompath 扩展中工作得很好,但在脚本中却不行,也尝试了这个 xpath

//table[@id = 'level3InnerTable_1']/tbody/tr[@id = 'Billable Client']/td[1]/input

我无法使用输入 ID,因为它是动态的。我想通过从<tr>的ID开始遍历来获取输入标签的ID即Billable Client

我正在使用 selenium java Eclipse 和 Chrome

enter image description here

最佳答案

要获取 id 属性的值,请引入 WebDriverWait() 和 visibilityOfElementLocated() 以及以下 xpath 选项。

XPATH 1:

new WebDriverWait(driver, 10).until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//td[contains(., 'Bilable to Client')]/preceding::input[1]"))).getAttribute("id");

或者

XPATH 2:

new WebDriverWait(driver, 10).until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//td[contains(., 'Bilable to Client')]/preceding-sibling::td[1]/input"))).getAttribute("id");

或者

XPATH 3:

new WebDriverWait(driver, 10).until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//table[@id='level3InnerTable_1']//tr[@id='Billable Client'][.//td[.//input]]]//input"))).getAttribute("id");

注意:如果所有这些都出现超时异常,请检查页面上是否有 iframe。

关于java - 通过遍历<tr id>从后代标签的getAttribute中获取ID,然后遍历到td,然后输入标签以获取其id,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59729662/

相关文章:

java - Geotools 获取特征信息

php - 使用参数 : {"desiredCapabilities"} error 为 http POST 到/ session 抛出 Facebook\WebDriver Curl 错误

c# - 与列表中的Webdriver元素进行交互

xpath - 获取 href 属性

java - 如何使用 Java 运行 .group()

java - 从 SCM checkout Maven 项目 : disconnect and merge

java - 使用用户名和密码登录后如何抓取网站

c# - 无法使用 selenium webdriver 在 IE 中执行右键单击

java - 使 TestNG 测试依赖于成功完成的测试

java - 动态继承命名空间的 XSL 元素