我尝试了很多方法,其中一些在 chrompath 扩展中工作得很好,但在脚本中却不行,也尝试了这个 xpath
//table[@id = 'level3InnerTable_1']/tbody/tr[@id = 'Billable Client']/td[1]/input
我无法使用输入 ID,因为它是动态的。我想通过从<tr>
的ID开始遍历来获取输入标签的ID即Billable Client
我正在使用 selenium java Eclipse 和 Chrome
最佳答案
要获取 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/