Selenium Ide语法有助于断言CSS或div元素中的部分文本

时间:2018-07-09 15:27:58

标签: html css selenium

我正在尝试在CSS链接上声明文本,至少我认为它是CSS。 当我单击以在页面中查找元素时,这就是元素:css =#charitable-tab-link> a> div.rotational-span.result-flags。

当我给一个Charitable Giving值时,它失败了,这是由于该元素具有与其一起动态生成的其他文本。 错误消息:实际值'Charitable Giving16 / 19'与'exact:Charitable Giving'不匹配

我只想包括“慈善捐赠”部分,因为这些值可能会根据显示的页面而改变。

我已经在div.rotational-span.result-flags之后在目标字段中尝试了一些操作,例如[start-with('Charitable Giving')],但我不知道将这些命令放在何处仅声明部分文字,将不胜感激。

<div class="col-md-3 ignore-print-always" style="">
    <ul class="nav nav-pills nav-stacked" id="profile-pills-tab" style="margin-left: 0px; 
    opacity: 1; max-width: inherit;">
    <li class="ui-state-default nav-link in active" id="detailed-tab-link" role="tab">
    <a data-toggle="tab" href="#detailed-tab">
        <div class="menu-icon">
        <i class="fa fa-address-card"></i> 
        </div>
        <div class="rotational-span result-flags">

        Profile Summary                
        </div>
                    <button type="button" class="close menu-item-remove" aria-label="Close">
                <span aria-hidden="true">×</span>
            </button>

        </a>

    <div class="list-overlay" style="display: none;"><i class="fa fa-spin fa-spinner">
    </i></div></li>

<li class="ui-state-default nav-link in" id="charitable-tab-link" role="tab">
    <a data-toggle="tab" href="#charitable-tab">
        <div class="menu-icon">
        <i class="fas fa-hand-holding-heart"></i> 
        </div>
        <div class="rotational-span result-flags">

        Charitable Giving

<div title="55 High Quality Results / 55 Total Results" 
    class="menu-item-totals result-flag result-flag-hq">16 / 19
</div>
    <input id="charitableHQ" value="16" type="hidden">
    <input id="charitableTotal" value="19" type="hidden">                
        </div>

在文本文件中,这是命令

"comment": "",
  "command": "assertText",
  "target": "css=#charitable-tab-link > a",
  "value": "*Charitable Giving*"

1 个答案:

答案 0 :(得分:1)

  

当我给一个Charitable Giving值时,它失败了,这是由于该元素具有与其一起动态生成的其他文本。

所以您要寻找的是做一些partial matching with assertText。这应该非常容易,只需用*Charitable Giving*(星号)将文本括起来即可。如果不起作用,则说明您的flavor of Selenium IDE中存在错误。它可以在kantu selenium ide中正常工作:

enter image description here

测试用例代码:

{
  "CreationDate": "2018-7-9",
  "Commands": [
    {
      "Command": "open",
      "Target": "https://www.seleniumhq.org/projects/ide/",
      "Value": ""
    },
    {
      "Command": "comment",
      "Target": "full match",
      "Value": ""
    },
    {
      "Command": "assertText",
      "Target": "//*[@id=\"mainContent\"]/table/tbody/tr/td[1]/ul/li[1]",
      "Value": "Easy record and playback"
    },
    {
      "Command": "comment",
      "Target": "partial match",
      "Value": ""
    },
    {
      "Command": "assertText",
      "Target": "//*[@id=\"mainContent\"]/table/tbody/tr/td[1]/ul/li[1]",
      "Value": "*record*"
    }
  ]
}

您可以将此JSON复制并粘贴到kantu的“源视图”选项卡中并运行它。