我正在尝试自动导航到一个外部网站。为了达到这个目的,我需要点击一个按钮(在一个网页上显示下一周的内容)。全历 日历)。) 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")]"