使用selenium webdriver查找标签文本

问题描述 投票:0回答:4

我很难使用 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() 会检索所有这些标签值。我可以根据页面中的位置获取标签值吗?谢谢。

selenium selenium-webdriver
4个回答
2
投票
driver.findElement(By.id("row")).getText();

1
投票

您可以使用以下代码一一循环遍历所有需要的标签 -

List<WebElement> list = driver.findElements(By.xpath("//*[@id='row']/td/b"));

for(int i=0;i<list.size;i++){

   list.get(i).getText();

  }

我希望这能解决您的问题。


0
投票

要通过其位置获取值,您可以使用类似以下内容:

    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 来存储所有匹配项。


0
投票

2024 年我将这样做:

captcha = driver.find_element(by=By.XPATH, value=captcha_xpath)
print(captcha.text)
© www.soinside.com 2019 - 2024. All rights reserved.