首页 > 解决方案 > 下载文件后 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 能够检查其他框并接受这些条款,但不是这个。

我注意到,问题是,下载条款后点击停止工作。在此之前它有效。

标签: htmlcssseleniumxpathselenium-ide

解决方案


我没有找到合适的解决方案,而是一种解决方法。下载后简单地重新加载页面可以解决我的问题。


推荐阅读