以下是网页内容的一部分:
<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
。
修改
CODE
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
错误已被删除,但未打印该值。
答案 0 :(得分:0)
这可以通过使用xpath选择器来完成。您可以找到具有特定内容的元素,
element1 = driver.findElement(By.xpath("//td[text()='aaaa']"))
和前面兄弟的具体内容为,
element2 = driver.findElement(By.xpath("//td[text()='aaaa']/preceding-sibling::td[2]"))
现在,您可以对element2执行任何操作。
我建议你使用带有firebug和xpath检查程序的inspect xpath。
希望它会有所帮助。
答案 1 :(得分: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());
}