当前位置: 首页 > 知识库问答 >
问题:

使用Selenium Web驱动程序和XPath在变量中存储文本

易俊远
2023-03-14

我正试图从一个使用VBA中的此代码的网站获得邮政编码:

variableName = driver.findElement(By.XPath(".//*[@id='T_F2']/fieldset/div[1]/div/div[4]/span[2]"))

然而,这给了我一个错误:

我假设这个错误只是告诉我XPath是错误的一种简单方式。由于我不是XPath的天才,我只需安装FireBug和FirePath add ons,它们为我生成了上面的XPath。问题是,当我将XPath输入到FirePath.//*[@id='t_f2']/fieldset/div[1]/div/div[4]/span[2]并点击evaluate时,它可以很好地找到邮政编码。

<div id="T_F2">
  <fieldset>
    <div class="txt_align_centre padding_bottom_5">
      <div class="txt_align_left">
        <div class="err_row">
          <span class="red_text_v err_formw">
            You searched for telephone number 02075884760.
            <br></br>
          </span>
        </div>

        <div class="row">
          <span class="form_label">
            <label>
              CSS Exchange:
            </label>
          </span>
          <span class="formw_nonedit">                        
          </span>
        </div>

        <div class="row">
          <span class="form_label">
            <label>
              District code:
            </label>
          </span>
          <span class="formw_nonedit">
            CL 
          </span>
        </div>

        <div class="row">
          <span class="form_label">
            <label>
              Post code:
            </label>
          </span>
          <span class="formw_nonedit">
            EC2M 3WA
          </span>
        </div>

        <div class="row">
          <span class="form_label">
            <label>
              PCP Id:
            </label>
          </span>
          <span class="formw_nonedit">
          </span>
        </div>
        ...
      </div>
    </div>
  </frameset>
</div>

共有1个答案

郜振国
2023-03-14

我不完全确定这里出了什么问题,但如果我能提供一个替代方案…使用CSS。它更快,更干净,而且更好。

在您的情况下,选择器应该是(假设该位置在列表中是静态的)

div#T_F2 div.txt_align_left > div.row:nth-child(4)

所以你可以用

text = driver.findElement(By.CssSelector("div#T_F2 div.txt_align_left > div.row:nth-child(4)").getText();
 类似资料:
  • 问题内容: 我试图单击此页面上的元素: 在这一点上,我想单击“现金流量”,“资产负债表”或“季度”。我知道这些按钮已加载,因为我可以使用BeautifulSoup从页面源中提取它们。但是,当我尝试使用Selenium时: 全部返回“无法定位元素”,除了“季度”返回一个元素,但它位于图上方的一个元素而不是我感兴趣的表格上方的一个元素。 我认为这是由于位于错误的iframe中,而我找到了所有ifram

  • 我正在尝试根据其文本内容选择一个元素。我正在使用XPath来实现这一点。 我只是感到困惑,这应该有效吗? 我甚至会复制HTML代码: div元素内部有“通知”字样。那么为什么它不起作用。 转到Facebook上的此页面:https://www.facebook.com/settings 使用此chrome扩展通过xPath突出显示任何区域。

  • 按钮超文本标记语言代码我将如何编写命令来单击按钮的xpath? Xpath是 是吗

  • 我是否正确理解了客户端模式的文档? 客户端模式与驱动程序在应用程序主程序中运行的集群模式相反? 在客户端模式下,驱动程序和应用程序主程序是独立的进程,因此+必须小于计算机的内存? 在客户端模式下,驱动程序内存不包括在应用程序主内存设置中吗?

  • 问题内容: 我想将oracle jdbc驱动程序作为依赖项(运行时作用域)添加到我的项目中-ojdbc14。在MVNrepository站点中,放入POM的依赖项为: 当然这是行不通的,因为它不在maven使用的中央存储库中。2个问题: 如何找到包含此工件的存储库(如果有)? 我如何添加它以便Maven使用它? 问题答案: 如何找到包含此工件的存储库(如果有)? 不幸的是,由于二进制许可证,Ora