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

下载文件后,Selenium IDE单击复选框不起作用

常温文
2023-03-14

在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能够选中其他框并接受这些条款,而不是这个。

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

共有2个答案

公西岳
2023-03-14

我没有找到一个合适的解决办法,而是找到了一个变通办法。下载后简单地重新加载页面就解决了我的问题。

尉迟禄
2023-03-14

我认为问题是用于定位复选框的定位器。根据所提供的信息,我猜单击事件没有为所使用的标签处理。

您需要选择需要单击的复选框的输入标签,而不是获取标签的XPATH。

在这种情况下,要选择的元素的xpath应该是:

//label[contains(.,'Ich akzeptiere die Prüfungsbestimmungen')]/../input

使用此元素选择器单击应执行预期的单击。

 类似资料:
  • 我有以下GridView: 我的目标是在单击创建复选框时自动和读取复选框。因此,我能够创建以下脚本: 您可能想知道为什么我使用了两次。这是因为如果您在复选框上应用css类,ASP. net将在复选框周围包装一个。 因此,如果我打开包含脚本的页面并单击“创建”-复选框,“读取”-复选框也会被选中,并且将被禁用。取消选中“创建”-复选框也可以正常工作:“读取”-复选框将并。 但是:一旦我手动检查了一次

  • 问题内容: 角度1.2: 我的功能状态不正确? 单击后,我想要状态。 问题答案: 和的执行顺序不明确,因为它们没有定义明确的优先级。相反,你应该使用或上,以确保您获得的正确值 模型 变量。 在您的情况下,这应该可以工作:

  • 我有几个复选框。基于JSON响应(通过ajax-requests加载数据),我使用.prop()函数设置和重置复选框的默认值。问题是,如果我手动改变它们,它们显然不会改变这种行为。我不能通过$('#checkbox:checked').val()传递复选框的值,控制台日志显示为'undefined'。这是因为.prop()函数吗?如何获取选中复选框的值? 如果你需要更多的信息,我很乐意提供。这里有

  • 大家好,我是Selenium/Java/HTML的相对(阅读:complete)新手,如果我问的是显而易见的问题,我深表歉意。我需要的是能够 单击特定复选框1和 以下是网站HTML: 特定复选框1 特定复选框2: 我徒劳的尝试: Xpath: 元素不可见 而是单击div中的href超链接 元素不可见 CSS: 元素不可见 通过类名: 打开超链接 我在论坛上看了看,看到提到元素被隐藏了——但是我找不

  • 我无法获取“remember-me”复选框值(不存在获取400个必需的布尔参数“remember”) HTML表单

  • 我遇到了一个问题,从带有angular2的Spring boot加载文件。 这是我在spring boot的代码,它来自:使用spring MVC返回生成的pdf。我可以用postman直接下载文件,但不能用angular2... Angular2服务 和下载按钮 当我点击下载按钮chrome打开新标签并立即关闭它不显示任何文件。以下是Postman的一些响应标题。