如何从在Web驱动程序中没有参数的H1标记中获取文本?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (40)
<html>
  <head>...</head>
  <body>
    <h1>Phonetic Translator</h1>
    <br>
    <link rel="stylesheet" href="/style.css" type="text/css">
    <title>electRa Phonetic Translator</title>
    <p>Today's password is:</p>
    <h1>
      MQQJXJLCQZ
      <hr width="80%">
    </h1>
    <p>The phonetic translation is:</p>
    <h3>
      ...
    </h3>
    ...
  </body>
<html>

我想得到文字MQQJXJLCQZ。由于Body之后有两个H1标签。我已经使用XPath来获取文本值,但不幸的是我收到了错误消息Type mismatch: cannot convert from String to WebElement

我写的代码是:

    String PasswordxPath = "/html/body/h1[2]/text()";
    WebElement H1Element = driver.findElement(By.xpath(PasswordxPath));
    WebElement getPassword = H1Element.getText();

请问,有人可以更正此代码或建议另一种获取文本值的方法吗?

UPDATE1

我使用字符串来获取文本值,但现在我无法使用sendKeys将此值放在表单中。错误日志如下:

元素信息:{using = xpath,value = / html / body / h1 [2] / text()} at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Nativ e Method)at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknow n来源)

提问于
用户回答回答于

如前所述,这就是问题所在。

  WebElement getPassword = H1Element.getText();

getText()返回字符串值,但不返回WebElement。所以你需要在这里使用字符串,就像

   String getPassword = H1Element.getText();
用户回答回答于

取代WebElement通过String在最后一行:

String PasswordxPath = "/html/body/h1[2]/text()";
WebElement H1Element = driver.findElement(By.xpath(PasswordxPath));
String getPassword = H1Element.getText();

扫码关注云+社区

领取腾讯云代金券