【问题标题】:XPATH Syntax - Katalon StudioXPATH 语法 - Katalon Studio
【发布时间】:2019-06-25 12:22:15
【问题描述】:

嗨, 我想从 Katalon Studio 的 Cucumber & Groovy 网页中获取文本。请在下面找到具有 xpath 的步骤定义,下面是 html 代码。 我想从页面中阅读以下两行代码,这些代码也可以在下面的 html 代码中引用。数字 596 每次都会变化,即动态的。

创建查询跟踪 #596 系统追踪查询#596已提交成功

步骤定义 queryt1 = WebUI.getText(findTestObject(By.xpath("//td[@class='pageTitle'][1]")))

整页 HTML:

<html lang="en">
<head>
<title>Govt Inquiry</title>   

<link rel="stylesheet" type="text/css" href="?appId=gmpinquiry&flName=/uitmpl/en/css/uitmpl.css" />
<link rel="stylesheet" type="text/css" href="?appId=gmpinquiry&flName=/gmpinquiry/css/gmpinquiry.css" />
<script type="text/javascript" src="?appId=gmpinquiry&flName=/uitmpl/js/other_scripts.js"></script>
<script type="text/javascript" src="?appId=gmpinquiry&flName=/uitmpl/js/freezingHeader.js"></script>
<script type="text/javascript" src="?appId=gmpinquiry&flName=/uitmpl/js/sortTable.js"></script>
<noscript>
    <style>
        table.mQH {display:block;}
    </style>
</noscript>
<style id="antiClickjack">body{display:none !important;}</style>
<script type="text/javascript">
   if (self === top) {
       var antiClickjack = document.getElementById("antiClickjack");
       antiClickjack.parentNode.removeChild(antiClickjack);
   } else {
       top.location = self.location;
   }
</script>
</head>
<body onload="uitmpl_qhPageInit()">

<!-- Skip To Main Content should be the next element immediately after body element -->
 <div class="skipnav"><a href="#maincontent" title="Skip to Main Content">Skip to Main Content</a> </div>














<script type="text/javascript" src="?appId=gmpinquiry&flName=/uitmpl/js/menu_script.js"></script>
<script type="text/javascript" src="?appId=gmpinquiry&flName=/uitmpl/js/application_settings.js"></script>
<script type="text/javascript" src="?appId=gmpinquiry&flName=/uitmpl/js/global_settings.js"></script>
<script language="javascript">
application.data = {

td_1: "Home",
td_2: "Govt Inquiry",
td_3: "Create Inquiry",
td_4: "Reports/Search",
td_5: "My Preference",

url_1: "javascript:OnGMPPortalSubmit(document.frmMenuScr, '')",
url_2: "javascript:OnMenuSubmit (document.frmMenuScr, 'homepage')",
url_3: "javascript:OnMenuDispatch (document.frmMenuScr, 'setupinquiry','create')",
url_4: "javascript:OnMenuSubmit (document.frmMenuScr, 'inqsubmenu')",
url_5: "javascript:OnMenuSubmit (document.frmMenuScr, 'userpref')"

};

global.data = {
//td_1: "AT&amp;T BusinessDirect",
td_1: "Write Us",
td_2: "Help <span class=\"offscrn\"> - Opens a PDF Document for Help</span>",
td_3: "Close",
//td_3_1: "General Help",
//td_3_2: "Application Tutorial",
//td_3_3: "<span id=\"shHd\">Show</span> Quick Help",
//url_1: "javascript:bizDirect()",
url_1: "javascript:OnMenuSubmit(document.frmMenuScr, 'compose')",
url_2: "javascript:uitmpl_popUpReg(document.frmMenuScr.action + '?appId=' + document.frmMenuScr.appId.value + '&flName=' + document.frmMenuScr.context.value + '/help/Inquiry_UG.pdf')",
url_3: "javascript:window.close();"
//url_3_1: "javascript:uitmpl_popUpReg(document.frmMenuScr.action + \\'?appId=\\' + document.frmMenuScr.appId.value + \\'&flName=\\' + document.frmMenuScr.context.value + \\'/help/Inquiry_UG.pdf\\')",
//url_3_2: "#",
//url_3_3: "javascript:uitmpl_qhPageToggle()"
};
</script>





<script type="text/javascript" src="?appId=gmpinquiry&flName=/gmpinquiry/js/script.js"></script>


<!--************ uitmplbegin: tBAN ************-->
<!--****** begin:background graphic ******-->
<table width="100%" cellspacing="0" border="0" class="tBAN">

    <tr>
        <td><img src="?appId=gmpinquiry&flName=/uitmpl/en/img/swoosh.gif" width="650" height="69" alt="" border="0" /></td>
    </tr>
</table>
<!--****** end:background graphic ******-->

<!--****** begin:logo and company title ******-->
<div class="logoCompany">
<table width="100%" cellspacing="0" border="0" class="tBAN">

    <tr>
        <td class="logo"><img src="?appId=gmpinquiry&flName=/uitmpl/en/img/attbizdirect.gif" width="291" height="63" alt="AT&T | Business Direct" border="0" /></td>
        <td><!-- stretchable cell --></td>
        <!-- max characters for company title: 72 w/ breaks (24 per line) -->
        <td class="company">ATT Gov Sol Dev<br/>rm0013 

      <!-- Begin Skip Top Navigation -->
      <!-- <div class="skipnav"><a href="#main" title="Skip to Main Content">Skip to Main Content</a></div> -->
      <!-- End Skip Top Navigation --></td>
    </tr>
</table>
</div>
<!--****** end:logo and company title ******-->

<!--****** begin:application title ******-->
<table cellspacing="0" border="0" class="appTitle">
    <tr>
        <td><a href="javascript:OnMenuSubmit (document.frmMenuScr, 'homepage')">View and Analyze Govt. Bills: Govt Inquiry</a></td>
    </tr>
</table>
<!--****** end:application title ******-->

<!--************ uitmplend: tBAN ************-->
<!--************ uitmplbegin: tNAV ************-->
<div id="glbl">
<script language="JavaScript1.3">
<!--
uitmpl_list("global");
//-->
</script>
<noscript>
<div class="globalAcc">
<table class="global_main" cellspacing="0" border="0">
<tr>
<td class="global_main_spacer">&nbsp;</td>
<td><a href="javascript:bizDirect()">AT&amp;T BusinessDirect</a></td><td class="pipe">|</td><td><a href="javascript:OnMenuSubmit(document.frmMenuScr, 'compose')" target="_new">Write Us</a></td><td class="pipe">|</td><td><a href="#">Help</a></td>
</tr>
</table>
</div>
</noscript>
</div>
<div id="app">
<script language="JavaScript1.3">
<!--
uitmpl_list("application");
//-->
</script>
<noscript>
<div class="applicationAcc"><table class="application_main" cellspacing="0" border="0">
<tr>
<td><a href="javascript:OnMenuSubmit (document.frmMenuScr, 'homepage')">Home</a></td>
<td class="pipe">|</td>
<td><a href="javascript:alert ('Under Construction...')">Create/Update Dispute</a></td>
<td class="pipe">|</td>
<td><a href="javascript:alert ('Under Construction...')">Reports/Search</a></td>
<td class="pipe">|</td>
<td><a href="javascript:OnMenuSubmit (document.frmMenuScr, 'UserPreference')">My Preference</a></td>
<td class="pipe">|</td>
<td><a href="javascript:alert ('Under Construction...')">User Management</a></td>
</tr>
</table>
</div>
</noscript>
</div>
<!--************ uitmplend: tNAV ************-->
<form name="frmMenuScr" action="/servlet/GMPGate" method="get">
<input type="hidden" name="appId" value="gmpinquiry">
<input type="hidden" name="nextScr" value="userpref">
<input type="hidden" name="methodToCall" value=""/>
<input type="hidden" name="context" value="/gmpinquiry"/>


</form>



<!--***** begin:grid *****-->
<table width="100%" cellspacing="0" border="0" class="wrap">
    <tr>
        <td width="100%" class="grid">
            <!-- InstanceBeginEditable name="PageHeader" -->
            <!--************ uitmplbegin: tPH ************-->
            <!--****** begin:titles ******-->
            <table cellspacing="0" border="0" class="tPH">
                <!--****** begin:page title ******-->
                <tr>
                    <td class="pageTitle">Create Inquiry Tracking # 599</td>
                </tr>
                <!--****** end:page title ******-->
            </table>
            <!--****** end:titles ******-->
            <!--************ uitmplend: tPH ************-->
            <!-- InstanceEndEditable -->
        </td>
        <td width="182" class="grid"><img src="?appId=gmpinquiry&flName=/uitmpl/en/img/pixel.gif" width="182" height="1" alt="" border="0" /></td>
    </tr>
</table>
<!--***** end:grid *****-->

<!--***** begin:grid *****-->
<table width="100%" cellspacing="0" border="0" class="wrap">
    <tr>

<td width="100%" class="grid"> 
<!--- BeginOptional name="TaskConfirmation" --->
<!-- InstanceBeginEditable name="TaskConfirmation" -->
<!--************ uitmplbegin: mTC ************-->
<table cellspacing="0" cellpadding="2" border="0" class="mTC">
<tr class="msgConfirm"> 
<td> <img src="?appId=gmpinquiry&flName=/uitmpl/en/img/confirmation.gif" width="29" height="29" 
        border="0" alt="Confirmation." /></td><td>The inquiry for system tracking # 599 has been submitted successfully. </td>
    </tr>
</table>

解决方案失败的原因

2019-06-26 18:40:10.049 ERROR c.k.k.c.c.keyword.CucumberReporter   
- ❌ it should displays create inquiry pages FAILED.

    Reason:
    groovy.lang.MissingMethodException: No signature of method: static com.kms.katalon.core.testobject.ObjectRepository.findTestObject() 
        is applicable for argument types: (org.openqa.selenium.By$ByXPath) values: [By.xpath: //td[@class='pageTitle'][1]]

        Possible solutions: findTestObject(java.lang.String), findTestObject(java.lang.String, java.util.Map) at CreateInquiry001.it_should_displays_create_inquiry_page2(CreateInquiry001.groovy:369)
                at ✽.it should displays create inquiry pages(C:/Users/vdavuluri2/Katalon Studio/Govt Inquiry/Include/features/Create Inquiry-001.feature:55)

【问题讨论】:

    标签: groovy cucumber katalon-studio


    【解决方案1】:

    Katalon 的findTestObject() 方法用于从对象存储库中选择对象。它不适用于By 类。

    您可以尝试以下方法:使用给定的 Xpath 创建一个对象,然后在其上使用 WebUI.getText()

    TestObject testObject = new TestObject().addProperty("xpath", ConditionType.EQUALS, "//td[@class='pageTitle'][1]")
    WebUI.getText(testObject)
    

    【讨论】:

    • 感谢您的帮助,Mate Mrse。 它适用于 TestObject。谢谢。
    【解决方案2】:

    pageTitle 类的元素看起来很独特,所以为什么不是 user //td[@class='pageTitle']

    【讨论】:

    • 感谢您的回复。 querytext = WebUI.getText(findTestObject(By.xpath('//td[@class='pageTitle']))) 看起来不错吗?我是使用 XPATH 的新手。
    • 如果没有,请尝试//td[@class='pageTitle'][1]。 xpath 可能会返回多个项目,因此您需要选择第一个。
    • 我已将测试结果贴在原帖底部。你能调查一下并建议进一步进行吗?看起来它正在返回错误-inquiryt1 = WebUI.getText(findTestObject(By.xpath("//td[@class='pageTitle'][1]"))) 请检查这一行!!
    • 我已经添加了我的 HTML 代码的完整页面.. 我之前没有分享过。感谢您的帮助。
    猜你喜欢
    • 1970-01-01
    • 2019-05-23
    • 1970-01-01
    • 1970-01-01
    • 2019-07-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多