不要在下拉菜单中选择“正确”选项

时间:2019-04-06 20:40:32

标签: jasmine protractor dropdown

量角器在下拉菜单中选择错误的选项。 我必须: 选择第一个下拉菜单以打开另一个下拉菜单(以我的情况:选择“付款方式”(第一个下拉菜单)以打开第二个下拉菜单-可用的信用卡): 重要时刻:如果第一个下拉菜单具有默认值,则第二个下拉菜单将不可见。

我的代码有不同的变化:

let paymentDropdown = element(by.name("payment-method"));
let dynamicBlock = $$(".dynamic").first();
let useThisCardButton = element(by.name("do-add-payment-method»));
let paymentConfigBlock = element(by.id("payment-config-container"));

browser.wait(EC.visibilityOf(paymentDropdown), 5000);
$("#payment-method-0 > option:nth-child(2)").click();
browser.wait(EC.visibilityOf(dynamicBlock), 5000);
useThisCardButton.click();
browser.wait(EC.visibilityOf(paymentConfigBlock), 5000);

因此,我尝试了第一个下拉菜单:

1. $("#payment-method-0 > option:nth-child(2)").click();
2. element(by.name("payment-method"))
    .all(by.tagName('option'))
    .get(1)
    .click(); 
3. element(by.cssContainingText('option', 'Credit Card')).click();
4. element(by.name("payment-method")).$('[value="cc"]').click();

HTML是:

<select name="payment-method" id="payment-method-0" style="display: inline-block;">
<option value="0">Select Payment Method</option>
<option value="cc">Credit Card</option>                    
</select>

什么都没有!我不知道它是如何工作的,但是第一个下拉菜单具有默认值,第二个下拉列表是可见的!然后,我点击«Use this method»(使用这种方法)按钮,然后失败! 从10个测试中的1个测试中选择正确的第1个值,因此测试通过。但是其他9个试验都失败了。为什么?如何正确执行操作以及如何确保将选择正确的选项?

1 个答案:

答案 0 :(得分:1)

尝试以下方法。在这里,您可以选择不打开下拉菜单的值。

var firstDrop = element(by.css('#payment-method-0'));
browser.wait(EC.elementToBeClickable(firstDrop), 5000);
firstDrop.sendKeys('Credit Card');
browser.wait(EC.visibilityOf(dynamicBlock), 5000);

希望它对您有帮助