【问题标题】:QTP - dynamically pass browser/page title changes for web application?QTP - 动态传递 Web 应用程序的浏览器/页面标题更改?
【发布时间】:2017-07-20 07:07:29
【问题描述】:

我在注销时需要一些帮助,我想准备独特的注销功能,但在这里我遇到了问题,比如在使用应用程序时,我有不同的模块,根据关键字驱动它会起作用。

无论页面标题如何,我都想单击注销链接,并且我想将动态更改的页面名称和标题传递给下面的代码。

pageTitleName = Browser("CreationTime:=0").Page("title:=.*").GetROProperty("title")
Print pageTitleName
Browser("pageTitleName").Page("pageTitleName").Link("name:=Logout").Click

我收到对象未创建的错误,请提供如何实现此目标

Browser("whatever").Page("whatever")......etc

【问题讨论】:

  • 您还可以考虑将 OR 中的 title 属性设置为正则表达式值...

标签: testing automated-tests qtp


【解决方案1】:

pageTitleName = Browser("CreationTime:=0").Page("title:=.*").GetROProperty("title") 打印页面标题名称 Browser("pageTitleName").Page("pageTitleName").Link("name:=Logout").Click

在我看来,在第一行中,您正在对对象使用描述性编程并阅读页面标题。 在第二行中,您直接使用该属性,就好像该对象存在于 OR 中一样。您在这里混合了对象识别部分。

你可以修改第二行为

Browser("title:="&pageTitleName).Page("title:="&pageTitleName).Link("name:=Logout").Click

【讨论】:

  • 是的,它工作正常,请帮助,我想为此创建独特的函数并将其调用到每个函数,请帮助
【解决方案2】:

有一个名为 SetTOProperty 的方法可以满足您的要求。我假设您正在为浏览器和页面使用 title 属性,并且两者都在存储库中。

使用如下代码...

Browser("browser"). SetTOProperty ("title"," yourdynamictitle")
Browser("browser").Page("page"). SetTOProperty ("title"," yourdynamictitle")

Browser("browser").Page("page").Link("LogOut").Click

SetTOProperty 设置指定对象属性值运行时。

否则,如果您使用的是内联描述,请使用以下代码

Browser("title:=" & strBrowserTitle).Page("title:=" & strPageTitle).Link("name:=LogOut").Click

其中strBrowserTitle、strPageTitle是字符串变量,分别包含浏览器和页面的标题值

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-08-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多