【问题标题】:Xpath Selenium troubleXpath 硒问题
【发布时间】:2015-02-26 21:23:29
【问题描述】:

谁能帮帮我?我尝试使用 Firepath 来获得正确的 Xpath,但是它给我的代码在我看来是不正确的。示例中的第一行是提供的。

.//*[@id='content']/div/div/div[1]/h2/span

<div id="content" class="article">
  <h1>News</h1>
  <div>
    <div>
      <div class="summary">
        <h2>
<span>9</span>
// this should be the correct xpath i think 
_driver.findElement(By.xpath("//*div[@id='content']/div/span.getText()"));

这里我想检查中间的文本是否大于或等于 1

另一个是:

.//*[@id='content']/div/div/div[3]

<div id="content" class="article">
  <h1>News</h1>
  <div>
    <div>
      <div class="summary">
        <div class="form fancy">
          <div class="common results">

这里我想检查一下div类公共结果是否已经生成,1项等于1个公共结果

【问题讨论】:

  • 你能提供更多关于你的第二期的细节吗?

标签: selenium xpath


【解决方案1】:

要检索跨度文本,您可以使用它

String spanText=driver.findElement(By.xpath("//div[@id='content']/div/div/div/h2/span")).getText();
System.out.println(spanText);

从第二个问题我不太清楚。你可以得到这样的类名,如果不是你的解决方案,请解释一下

String className=driver.findElement(By.xpath("//*[@id='content']/div/div/div/div/div")).getAttribute("class");
System.out.println(className);

【讨论】:

  • 第二个我得到的信息几乎和你给的一样(_driver.findElement(By.xpath(".//*[@id='content']/div/div/div[3]")).getAttribute("class")));
【解决方案2】:

我建议你使用:

//div[@id='content']/div/div/div/h2/span/text()

注意:您分享的 html 代码格式不正确。我建议您使用http://www.xpathtester.com/xpath(修复代码)和http://codebeautify.org/Xpath-Tester(测试您的xpath)提前测试代码和xpath

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-08
    • 2011-07-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多