Selenium IDE:无法点击Vaadin按钮。

我正在尝试自动导航到一个外部网站。为了达到这个目的,我需要点击一个按钮(在一个网页上显示下一周的内容)。全历 日历)。) Vaadin的Fullcalendar插件是这样的。.

该按钮在HTML中的定义为(电子80 开发工具)。

  <div id="content">
    <vaadin-vertical-layout class="layoutCalendar" theme="padding spacing" style="width: 80%;">
        <div class="buttonContainer">
            <vaadin-button class="custom-button" theme="icon" tabindex="0" role="button">
                <iron-icon icon="vaadin:angle-double-left"></iron-icon>
            </vaadin-button>
            <vaadin-button class="custom-button" tabindex="0" role="button">Today</vaadin-button>
            <vaadin-button class="custom-button" theme="icon" tabindex="0" role="button">
                <iron-icon icon="vaadin:angle-double-right"></iron-icon>
            </vaadin-button>
            <vaadin-button class="custom-button" theme="icon" tabindex="0" role="button">
                <iron-icon icon="vaadin:calendar"></iron-icon>
                <vaadin-date-picker tabindex="0" style="visibility: hidden; width: 0px; position: fixed; height: 0px;"></vaadin-date-picker>
            </vaadin-button>
        </div>
        <full-calendar class="calendar" style="background: rgb(255, 255, 255);"></full-calendar>
    </vaadin-vertical-layout>
</div>

它的xpath(来自Firefox 68开发工具)被定义为.NET。

//*[@id="button"]

所以我在上面添加了一个 click 命令在Selenium IDE的目标字段中加入以下文本。

xpath=//*[@id="button"]

但当然,由于所有的按钮(即前一个或今天的按钮)都有相同的id,所以它不能工作(Failed:
09:44:37
Implicit Wait timed out after 30000ms
.

所以我试着用.xpath的.xpath来定义。

<vaadin-button class="custom-button" theme="icon" tabindex="0" role="button"><iron-icon icon="vaadin:angle-double-right"></iron-icon></vaadin-button>

xpath定义为:

/div[1]/vaadin-vertical-layout/div/vaadin-button[3]

因此,在Selenium IDE中,我在目标字段中输入:

xpath=//div/vaadin-vertical-layout/div/vaadin-button[3]

结果一样。

此外,使用 Find target in page 不突出显示按钮,而使用 Select target in page 返回 css=calendar-view 并以同样的方式结束(不点击按钮).因此,我如何点击这个按钮,为什么Selenium IDE在找不到元素的情况下不显示错误?

因此,我怎样才能点击这个按钮,为什么Selenium IDE在找不到元素的情况下不显示错误?另外,我应该换Selenium(而不是IDE),还是Selenium IDE已经足够满足我的需求?

请注意:由于这是一个不属于我自己的外部网站,我无法判断该网站是由哪个vaadin版本驱动的。

编辑:尝试下面@Pete的答案

我锻炼了 Vaadin FullCalendar插件演示 并得到了它的工作与任一 xpath=//vaadin-button[4]xpath=//vaadin-button//span[contains(text(),"Next")]. 我注意到Selenium IDE在我输入的时候建议使用这些xpath。

当我在我的目标网站上做同样的事情时,Selenium IDE只建议使用 xpath=//calendar-view. 此外,虽然开发工具报告说,下一个按钮(它没有文字,只有 “下一个 “按钮)。chevron-right 图标)实际上是第四个 vaadin-button在这里,Selenium IDE无法高亮显示(也就是找到)。xpath=//vaadin-button[4]. 这在我看来很奇怪。

什么可以阻止Selenium IDE找到按钮?

任何帮助非常感激:-)

解决方案:

来自 https:/stefan.app.fifullcalendar-demo。,我写了这些xpaths。

上周:

XPath = "//vaadin-button//span[contains(text(),"Previous")]"

下周:

XPath = "//vaadin-button//span[contains(text(),"Next")]"

今天:

XPath = "//vaadin-button//span[contains(text(),"Today")]"

给TA打赏
共{{data.count}}人
人已打赏
解决方案

用.NetStandard打开自定义的外部网络浏览器。

2022-5-11 13:00:28

解决方案

在python中把列表追加到自己的位置[重复]。

2022-5-11 14:00:06

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索