【问题标题】:Selecting a text in selenium that contain specific text在 selenium 中选择包含特定文本的文本
【发布时间】:2018-02-23 23:45:42
【问题描述】:
<aside class="reply-flap js-captcha">
<ul>

        <li>
            <h1>contact name:</h1>
            <p>joel Rupp</p>
        </li>
    <li class="reply-tel">
        <h1>
                <a class="reply-tel-link" href="tel:14085551324">call</a>
                    <span class="reply-tel-text">call</span>

or
                <a class="reply-tel-link" href="sms:14055651324">text</a>
                <span class="reply-tel-text">text:</span>
        </h1>
        <p class="reply-tel-number">
            ☎ (408) 555-5678
        </p>
    </li>

    <li class="reply-email">
        <h1>reply by email:</h1>
            </li>
    <li>
        <h1>webmail links:</h1>
        <ul class="reply-emails">
            <li>
                <p>
                          </p>
            </li>
            <li>
                <p>
                           </p>
            </li>
            <li>
                <p>
                           </p>
            </li>
            <li>
                <p>
                           </p>
            </li>
        </ul>
    </li>
    <li>
        <h1>copy and paste into your email:</h1>
        <p class="anonemail">cjgmz-6484327676@serv.ytutyuty.org</p>
    </li>
</ul>

</aside>

我想从此代码中选择联系人姓名,尽管有时当姓名为空时,我得到以下 (li) 元素文本,即电子邮件地址,当找不到姓名时,它应该输出空白。 我正在使用此代码:

name = driver.switchTo().window(child_window).findElement(By.cssSelector("aside.reply-flap.js-captcha ul  > li:nth-child(1) p")).getText();

我知道,如果我使用 jsoup,我可以使用 contains(联系人姓名:) 我如何在硒中使用包含?

我尝试过类似的东西

h1[contains(text()='contact name:')]

它根本不工作

【问题讨论】:

    标签: css selenium xpath selenium-webdriver


    【解决方案1】:

    要使用 contains&lt;h1&gt; 标记正下方的 &lt;p&gt; 标记中检索文本,其中文本为 contact name,您可以使用以下 xpath

    name = driver.switchTo().window(child_window).findElement(By.xpath("//aside[@class='reply-flap js-captcha']/ul/li/h1[contains(text(),'contact name:')]//following::p[1]")).getText();
    

    注意:contains pseudo-class 不能作为规范使用的 CSS。在这里可以找到详细讨论selenium.common.exceptions.InvalidSelectorException with “span:contains('string')”

    【讨论】:

      猜你喜欢
      • 2021-10-27
      • 1970-01-01
      • 2017-09-20
      • 1970-01-01
      • 2015-10-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多