当前位置: 首页 > 知识库问答 >
问题:

Selenium IDE:无法单击Vaadin按钮

盖和洽
2023-03-14

我正在尝试并自动导航到外部网站。为此,我需要单击一个按钮(在完整日历中显示下一周)。Vaadin的Fullcalendar插件如下所示。

该按钮在HTML中定义为(Electron 80 developer tool):

  <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开发工具)定义为:

//*[@id="button"]

所以我在Selenium IDE中添加了一个单击命令,目标字段中有以下文本:

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

但当然,由于所有按钮(即上一个或今天的按钮)共享相同的id,因此无法工作(失败:09:44:37隐式等待在30000ms后超时)。

所以我尝试使用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足以满足我的需要?

请注意:由于这是一个我不拥有的外部网站,我无法判断哪个vaadin版本为该网站供电。

编辑:尝试下面皮特的答案

我在Vaadin FullCalendar插件演示上进行了练习,并让它使用xpath=//Vaadin按钮[4]xpath=//Vaadin按钮//span[contains(text(),“Next”)]。我注意到Selenium IDE在我进入时建议使用这些xpath。

当我在我的目标网站上做同样的事情时,Selenium IDE只是建议xpath=//calane-view。此外,尽管开发者工具报告说下一个按钮(没有文本,只有chevron-right图标)实际上是第4个vaadin-按钮,但Selenium IDE无法突出显示(又名查找)xpath=//vaadin-按钮[4].这在我看来很奇怪。

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

非常感谢您的帮助:-)

共有1个答案

杨柏
2023-03-14

从…起https://stefan.app.fi/fullcalendar-demo/,我写了这些XPath:

前一周:

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

下个星期:

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

今天:

XPath = "//vaadin-button//span[contains(text(),"Today")]"
 类似资料:
  • 我正在尝试通过xpath,css,ID...但什么都管用。 我总是得到错误:没有这样的元素:无法定位元素 我添加了一个明确的等待,但它仍然不起作用。 你能帮帮我吗? 单选按钮

  • 我试图用硒点击“下一页”按钮,但没有成功。我使用了正确的CSS选择器还是应该把它换成别的东西?

  • 我正在尝试使用Java Selenium Web驱动程序单击弹出窗口中的“保存”按钮,但是它会引发异常 消息:元素当前不可见,因此可能不会与命令持续时间交互 我可以看到“保存”按钮在我的弹出窗口中处于活动状态。我不知道它抛出异常的原因。 我正在尝试单击的“保存”按钮的 HTML 代码, firepath:html/body/div[6]/div/div/div/dir[2]/div/div//bu

  • 问题内容: HTML代码: 使用类名,我试图单击按钮,但无法单击。 我尝试了以下代码: 问题答案: 您可以尝试通过获取它。据我所记得,这只是一堂课。

  • 我用selenium加载一个页面:http://www.legorafi.fr/接下来,我尝试单击“Tout Accepter”按钮,但即使使用css选择器,它也不起作用。是给饼干的。 我试过这样的方法: 这是带有文本“Tout Accepter”的蓝色按钮 我该怎么办?