如何解决下载文件后,Selenium IDE 单击复选框不起作用
在 Chrome 中使用 Selenium IDE 我正在对网站上的进程进行测试。
我有一个网站,我需要在登录后单击复选框以接受使用条款、隐私条款等。我可以通过 Selenium 毫无问题地选中这些框,但我无法选中客户端条款的框。我必须先下载那些,什么都没有问题。但是,Selenium 不会选中接受框。
我正在使用整个 xpath,当我告诉 Selenium 向我展示网站中的元素时,它向我展示了正确的元素。我直接从 Chrome 中复制了 xpath。我正在使用以下命令。
Command: click
Target: xpath=/html/body/div[1]/div[2]/main/div/div[3]/div[3]/div[3]/label
我也尝试关注其他目标,但没有一个成功。尽管如此,当我单击“在页面中查找目标”选项时,Selenium 始终显示正确的标签。
css=.terms-client label
xpath=//div[3]/div[3]/label
xpath=//label[contains(.,'Ich akzeptiere die Prüfungsbestimmungen')]
我也尝试过检查而不是点击,但没有用。这是已下载客户端条款后受影响元素的 HTML 代码。
<div class="terms-client card" ng-repeat="role in data.roles" style="">
<div class="header">Kandidat/-in: Elektroniker/in EFZ CH</div>
<div class="content">
<p ng-bind-html="(role.description || ('terms.client.terms'|trans))|nl2br">Bitte studieren Sie die Prüfungsbestimmungen sorgfältig.</p>
<span iv-ipa-dokument="role.url" btn-class="btn-fill" download-state="role.downloaded" btn-label="Bestimmungen herunterladen"><button ng-click="download(url)" class="btn btn-fill" ng-disabled="disabled"><i class="icon icon-check-square-o" ng-class="class"></i> Bestimmungen herunterladen</button></span>
</div>
<div class="accept">
<!---->
<input id="client-accept-0" class="checkbox-new client-accept ng-pristine ng-untouched ng-valid ng-empty" type="checkbox" ng-model="role.state" ng-disabled="!data.agb || role.accepted || !role.downloaded">
<label for="client-accept-0">Ich akzeptiere die Prüfungsbestimmungen</label>
<!---->
</div>
</div>
最后的标签是我想点击的部分。我不明白为什么 Selenium 能够选中其他框并接受这些条款,但不能接受这个。
我注意到,问题是,下载条款后点击停止工作。在此之前它可以工作。
解决方法
我认为问题在于用于定位复选框的定位器。根据提供的信息,我猜点击事件并未针对所使用的标签进行处理。
不是获取标签的XPATH,而是需要选择需要点击的checkbox的input标签。
在这种情况下,要选择的元素的 xpath 应该是:
//label[contains(.,'Ich akzeptiere die Prüfungsbestimmungen')]/../input
使用这个元素选择器点击应该执行预期的点击。
,我没有找到合适的解决方案,而是一种解决方法。下载后重新加载页面成功解决了我的问题。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。