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

量角器:同一页上的两个下拉菜单,只能从一个下拉框中成功选择元素

陆子默
2023-03-14

我正在使用Protractor运行一个自动脚本,其中一个页面上有两个下拉菜单,它们位于彼此的下方/上方。这两个似乎完全相同,只是它们有不同的ng模型名称等。我可以从一个下拉菜单中成功地选择一个元素,但我不能为另一个选择。这有点让我头疼,为什么一个有效,另一个无效。下面是我可以选择元素的下拉菜单的代码

<select class="form-control ng-pristine ng-invalid ng-invalid-required" ng-model="user.sourceOfFunds" required="" ng-class="{submitted:invalid}">
                <option value="">Select</option>
                <option value="Savings">Deposit</option>
                <option value="Inherited">Current</option>
                <option value="Other">Savings</option>
                        </select>
element(by.model('user.sourceOfFunds')).sendKeys('Savings');

我的另一个下拉菜单如下:

<select class="form-control ng-pristine ng-invalid ng-invalid-required" ng-model="user.investFigure" required="" ng-class="{submitted:invalid}">
                         <option value="">Select</option>
                         <option value="<20">Less than 20K</option>
                         <option value="20-50">20K-50K</option>
                         <option value="50-100">50K-100K</option>
                         </select>
element(by.model('user.investFigure')).sendKeys('Less than 20K');
or
element(by.model('user.investFigure')).sendKeys('20');

当我试图从第二个下拉菜单中选择一个项目时,我得到了“element not found”。我对为什么会发生这种事有点困惑

共有1个答案

应俊爽
2023-03-14

使用sendKeys选择下拉选项对我来说似乎很奇怪,即使它有效。鉴于@alecxe的好建议,也许问题在于可见性,但尝试另一种方法,看看sendKeys是否是您的问题。

我每天都在具有多个选择的测试中使用此代码,没有问题。也许它对你有用……

var selectOptionByText = function(text) {
    return element(by.cssContainingText('option', text)).click();
};

如此呼唤...

selectOptionByText('Less than 20');
selectOptionByText('20');
 类似资料:
  • 我的页面上有一个下拉菜单。我测试量角器的目标是单击此下拉菜单中的一个选项,并让量角器检查结果: 我的量角器测试看起来像: 如果你想知道的话,ptor.ignoreSynchronization是启用的,因为我的网页不断地轮询后端的一些更新。 量角器在我运行测试时抛出以下错误: 我不明白这个错误是关于什么的。这个元素肯定是可见的,因为当我查看页面的源代码时,我可以在DOM结构中看到它。 善意的忠告

  • 我是一个全新的领域,我现在有两个独立的下拉菜单。我正在尝试使用户能够在同一时间只能从两者中的一个进行选择。例如,如果用户从中选择某项内容,然后从中选择另一项内容,则变为未选中。 下面是我在html部分中的片段 这里是JS 这是一个简单的演示。你可以注意到你可以同时选择一辆汽车和一辆卡车。此时应仅为汽车或卡车:https://jsfidle.net/j82ryu5k/2/

  • 问题内容: 我正在建立一个网站来学习编码,并且正在尝试建立一个工具,用户单击一个选择/下拉列表,其中包含从数据库 cat 提取的某些类别名称,然后另一个选择与从数据库 subcat 提取的子类别名称一起出现。这几乎与Yelp的(向下分类)完全一样,就像Yelp的(向下分类)一样。 我还做了一个图: 我已经有一个从 cat 数据库中提取的类别下拉列表: 我有一个从subcat数据库中提取的subca

  • 我正在编写一个python脚本,它将调用一个网页,并从下拉列表中选择一个选项来下载该文件。为了完成这个任务,我使用chropath。它是一个浏览器扩展,可以为您提供网页上任何按钮或字段的相对xpath或id,我们可以使用它从python脚本调用它。 上图显示了下拉菜单,其中我必须选择作为年份并下载文件。在图像的下部,您可以看到我使用了来获取下拉菜单的相对xpath,即 下面是我使用的代码: 从上面

  • 问题内容: 我正在一个涉及使用PHP脚本自动填充选择框的网站上工作。除了问题是我用来填充文本框的标题非常长(它们是期刊文章和演示文稿标题)外,所有其他方法都工作正常。下拉框延伸到最长元素的宽度,该元素延伸超出屏幕边缘,因此使滚动条无法触及。我尝试了多种尝试使用CSS手动将下拉框设置为特定宽度的方法,但到目前为止都无济于事。我所能做到的最好的事情是将“选择”框设置为一定的宽度,但是下拉菜单本身要宽得

  • 问题内容: 我有两个下拉菜单,其中的选项不是从数据库中获取的。 第一个,让用户选择一个类别。 第二个选项取决于第一个下拉菜单中的选择。例如,如果用户选择“ 第一个” 选项,则第二个下拉列表将显示 但是当用户改变主意,或先选择 第二个 选项时,第二个下拉列表现在将显示 我的问题是我该如何实现?不用数据库就可以做到吗? 谢谢! 问题答案: 参见下文,查看 不使用数据库 的 工作示例 。 使用MySQL