我很难使用 Selenium Web 驱动程序来查找以下场景的标签文本。
<tr id="row">
<td width="148" height="22" align="left">
<b> Label Text</b>
</td> </tr>
如何使用 webdriver 获取标签文本?
提前致谢。
谢谢您的回复。我想我应该更具体一些。我在 tr 标签内有一个 td 标签列表。 例如:
<tr id="row">
<td width="148" height="22" align="left">
<b> Label Text 1</b>
<td width="148" height="22" align="left">
<b> Label Text 2</b>
<td width="148" height="22" align="left">
<b> Label Text 3</b>
</td> </tr>
driver.findElement(By.id("row")).getText() 会检索所有这些标签值。我可以根据页面中的位置获取标签值吗?谢谢。
driver.findElement(By.id("row")).getText();
您可以使用以下代码一一循环遍历所有需要的标签 -
List<WebElement> list = driver.findElements(By.xpath("//*[@id='row']/td/b"));
for(int i=0;i<list.size;i++){
list.get(i).getText();
}
我希望这能解决您的问题。
要通过其位置获取值,您可以使用类似以下内容:
ReadOnlyCollection<IWebElement> cells = driver.findElements(By.XPath("//tr[@id='row']//td"));
foreach(IWebElement cell in cells)
{
if (cell.Location.X == targetX && cell.Location.Y == targetY)
{
cell.Text;
}
}
此外,FindElement 将仅返回找到的第一个与条件匹配的元素,必须使用 FindElements 来存储所有匹配项。
2024 年我将这样做:
captcha = driver.find_element(by=By.XPATH, value=captcha_xpath)
print(captcha.text)