【问题标题】:How to use QuerySelector method in TestComplete如何在 TestComplete 中使用 QuerySelector 方法
【发布时间】:2015-11-20 19:27:32
【问题描述】:

我不知道 QuerySelector 方法是如何工作的。我看过 SmartBear 帮助的示例,但在我的应用程序中遇到了问题。我认为它的工作方式与 Find 方法相同。

例如,当我要映射一个标签时,Find 方法的工作方式如下:

warningLabel= webPagePanel.Find("objectIdentifier", "MainContent_NotificationText", 100, true);

当我尝试使用 QuerySelector 方法映射同一个对象时,它不起作用:

warningLabel= webPagePanel.QuerySelector("#MainContent_NotificationText");

我尝试在上面的 QuerySelector 行之后使用该 QuerySelector 警告标签(例如,warningLabel.Click),然后测试失败并且日志显示“需要对象”。所以显然它没有找到我的对象

我做错了什么?如上所示,我如何准确地使用 QuerySelector 方法进行标签的简单映射?有问题的标签具有以下 HTML。

INPUT "name=ctl00$MainContent$NotificationText" id="MainContent_NotificationText" type=hidden value="To save a partial filter set for this report, the required fields identified above must not be blank." 

【问题讨论】:

  • @ebyrob:这个问题不是关于JavaScript的document.querySelector,而是关于TestComplete(一个测试工具)中的QuerySelector函数。
  • QuerySelector 方法仅在网页上定义,例如Sys.Browser().Page("http://example.com").QuerySelector(...)。你的webPagePanel 对象是一个页面吗?
  • 我让它工作了。起初,我将 webPage 对象与 QuerySelector 一起使用。由于某种原因,我无法在整个页面上使用 QuerySelector,例如webPage = Aliases.iexplore.IEWEBPAGE。然后 webPage.QuerySelector 没有工作。因此,我使用了我在原始帖子中显示的面板,它现在可以工作,例如webPagePanel = Aliases.iexplore.IELOA.FIND("objectIdentifer","webPagePanel")...然后 webPagePanel.QuerySelector 起作用了。

标签: javascript css-selectors jscript testcomplete selectors-api


【解决方案1】:

您尝试查找的对象是不可见的(输入...type="隐藏"...),并且 TestComplete 不会在其对象树中显示不可见的对象。如果只需要获取这个隐藏框的值,可以改用原生版本的querySelector方法:

  var warningLabel_Native = webPagePanel.contentDocument.querySelector("#MainContent_NotificationText");
  Log.Message(warningLabel_Native.value);

在这种情况下,您将获得没有 TestComplete 特定成员(如 Click()、Find()、VisibleOnScreen 等)的本机对象。但是,您可以使用所有本机功能。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-29
    • 1970-01-01
    • 2021-11-06
    • 1970-01-01
    • 2020-12-06
    相关资源
    最近更新 更多