0

以下是网页内容的一部分:

<td><a href="/aems/example.com">TEST LTD</a></td>
<td>SFFFFGG, JHFUJ, Hawaii,</td>
<td>aaaa</td>

如果我知道aaaa,无论如何我能找到价值TEST LTD吗?哪里TEST LTD可以是任何运行时值,aaaa我一直都知道。以上<td>部分内容之前或之后的网页中可以有更多html内容。

编辑

代码

require "rubygems"
require "selenium-webdriver"

driver = Selenium::WebDriver.for :firefox
driver.get "https://www.example.com"

element = driver.find_element :name => "username"
element.send_keys "######"
element = driver.find_element :name => "password"
element.send_keys "######"
element.submit
element = driver.find_element(:name, "btnHome")
element.click
element=driver.find_element(:link, "Suppliers")
#print element.attribute(:href)
element.click
element = driver.find_element :name => "search.locationIdentifier"
element.send_keys "H00371101"
element = driver.find_element :name => "btnSearch"
element.click

# all_table_data = driver.find_elements(:tag_name, "td")

 # all_table_data.each do |td|

   # puts td.text

 # end

 element2 = driver.find_elements(:xpath,"//td[text()='H00371101']/preceding-sibling::td[2]")

puts element2

错误已被删除,但未打印该值。

4

2 回答 2

0

这里

你可以试试这个 XPath

String xpath="//a[@href='/aems/example.com']/../following-sibling::td";

int td_size=driver.findElements(By.xpath(xpath)).size();

for(int i=1;i<=td_size;i++)
{
  System.out.println(driver.findElement(By.xpath("//a[@href='/aems/example.com']/../following-sibling::td["+i+"]")).getText());
}
于 2014-04-08T09:22:33.843 回答
0

这可以通过使用 xpath 选择器来完成。您可以找到具有特定内容的元素,

 element1 = driver.findElement(By.xpath("//td[text()='aaaa']"))

以及前面同级的特定内容,

 element2 = driver.findElement(By.xpath("//td[text()='aaaa']/preceding-sibling::td[2]"))

现在您可以在 element2 上执行您想要的任何操作。

我想建议您将检查 xpath 与 firebug 和 xpath 检查器一起使用。

希望它会有所帮助。

于 2013-01-20T14:18:11.837 回答