javascript - 量角器 JavaScript 在具有子类别的下拉框中选择值
问题描述
我尝试从下拉框中选择不同的值,但是我的下拉框有子类别,所以我在定位 web 元素时遇到问题。例如,假设我有以下内容:
dropDownBox-> Bank Account -> account#76789
-> account#99222
-> account#55555
-> Credit Card -> card#1234567
-> card#4444499
-> card#4406699
HTML
<select name="ctl00$main$ddlPaymentAccounts" id="main_ddlPaymentAccounts" class="sel" onchange="javascript:checkPayAcct();" title="Select Payment Account" style="width: 220px!important">
<option value="0">
Select Payment Method
</option><optgroup label="Bank Account">
<option title="Account Holder:My Test | Bank Number:044002161 | Account Type:DA | Account Number************6789" value="OTC_260511" selected="selected">
ChazeBank
</option>
</optgroup><optgroup label="Credit Card">
<option title="Account Holder:My Test | Expiration:0430 | Account Type:VI | Account Number************4499" value="CC_838022">
AmericanExpressCard
</option>
</optgroup>
</select>
我尝试使用 ID 和 XPath 定位元素,但没有运气,因为 Protractor 无法定位 Web 元素
var dropdownXPath = "//*[@id='main_ddlPaymentAccounts']/optgroup[2]/option[1]";
var webElement = element(by.xpath(dropdownXPath));
browser.wait(EC.elementToBeClickable(webElement), 60000);
webElement.click();
解决方案
你的 xpath 是正确的,所以这不是问题。
如果您在此步骤中没有抛出任何错误(即元素存在并单击),但没有任何反应,请尝试此https://stackoverflow.com/a/66110526/9150146
推荐阅读
- php - 如何在通知中访问当前用户?
- python - 尝试迁移数据库时,Django 应用程序在 Heroku 上崩溃
- c# - 离线时是否可以保护我的程序?
- postman - Postman - 关闭匹配算法
- spring - 测试因@Scheduled 任务而失败:未找到 JdbcSQLSyntaxErrorException 表“USER_ACCOUNT_CREATED_EVENT”
- .net - 为什么在 N 层应用程序中使用单一框架(如 J2EE 和 .NET)而不是使用各种框架?
- game-engine - Godot有问题的CustomStyle,如何解决这个问题?
- mysql - kubernetes 中的关系数据库复制,多于 master
- spring-boot - 使用 google App Engine 在 Spring Boot 应用程序中设置会话超时
- javascript - 使用javascript从img标签中拆分纯文本