下拉菜单出现问题:测试通过,但页面上没有任何更改

时间:2019-02-03 23:43:43

标签: jasmine protractor

我在下拉菜单中有一个用于选择选项的代码,它已通过。但是页面上没有任何更改。我有一个普通的下拉菜单:必须从“国家/地区”下拉列表中选择一个国家,然后从“州/地区”下拉列表中选择一个州。

我想我尝试了所有关于stackoverflow的建议。但是我想念什么?

此代码是普通代码:

<div class="input-holder">
<select name="country" id="country" class="jcf-hidden">
<option value="GBR">United Kingdom</option>
<option value="USA" selected="selected">United States</option>

我的代码是:

it("should edit dropdown", () => {

let country = element(by.id("country"));
let countryOptions = country.all(by.tagName("option"));
let state = element(by.id("state_select"));
let stateOptions = state.all(by.tagName("option"));

countryAndStateSelection();

function countryAndStateSelection() {
    countryOptions.getText().then(text => {
        if(text === "United States"){
            countryOptions.get(217).click(); //UK
            stateOptions.get(19).click();
            expect(countryOptions.getText()).toEqual("United Kingdom"); 
        }else{
            countryOptions.get(218).click(); //USA
            stateOptions.get(5).click();
        }
    });
} 

2 个答案:

答案 0 :(得分:0)

您似乎无法从下拉菜单中选择选项。 没错您没有打开下拉菜单,因此valeus尚不可见。

这里您有一些清理代码:

setuptools

答案 1 :(得分:0)

尝试以下一个

let country = element(by.id("country"));
let state = element(by.id("state_select"));
//To select country
country.click();
element(by.cssContainingText('#country>option', 'User country name here')).click();
browser.sleep(2000);
state.click();
element(by.cssContainingText('#state_select>option', 'user State Name')).click();
browser.sleep(2000);

希望它对您有帮助