Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/471.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 无法使用ionic2上带有量角器的元素(by.css())单击按钮_Javascript_Css_Ionic2_Protractor_Angular2 Testing - Fatal编程技术网

Javascript 无法使用ionic2上带有量角器的元素(by.css())单击按钮

Javascript 无法使用ionic2上带有量角器的元素(by.css())单击按钮,javascript,css,ionic2,protractor,angular2-testing,Javascript,Css,Ionic2,Protractor,Angular2 Testing,我可以导航到该页面,但在导航页面上,我尝试单击显示错误的按钮,如下所示: × navigates to the next page on click - Failed: unknown error: Element <button color="primary" id="button" ion- button="" large="" ng-reflect-color="primary" ng-reflect-large="" class="button button-md button

我可以导航到该页面,但在导航页面上,我尝试单击显示错误的按钮,如下所示:

× navigates to the next page on click
- Failed: unknown error: Element <button color="primary" id="button" ion-

button="" large="" ng-reflect-color="primary" ng-reflect-large="" class="button
 button-md button-default button-default-md button-large button-large-md button-
md-primary">...</button> is not clickable at point (121, 109). Other element 
would receive the click: <div class="click-block click-block-enabled click-
block-active"></div>

你可以看看我的评论,哪些有效,哪些无效。

经过更多的努力和搜索,我找到了问题的解决方案,也许有人会发现它有用

因为量角器非常快速和异步,所以有时它无法检测到我们要单击的元素。在我的例子中,它无法定位我必须单击的按钮元素

在处理非角度应用程序时,我们使用
ExpectedConditions
,它表示对量角器有用的罐装预期条件库

重构我的上述测试规范:

it('navigates to the next page on click', () => {
        browser.get('http://localhost:8100');
        let elemen = element(by.css('ion-content button'));
        elemen.click();
        let pageChecks = element(by.buttonText('Click to Forms'));
        let EC = protractor.ExpectedConditions;
        // let button = element(by.css('#button'));
        let button = $('#button');
        let clickable = EC.elementToBeClickable(button);
        browser.wait(clickable, 5000);
        button.click();
        let ele = $$('#form');
        let text = ele.getText().then((value)=>{
            console.log(value),
            expect(value).toContain('Forms');
            expect(value).toContain('');
        });
            });
这就解决了我的问题。用,来获得一些想法

it('navigates to the next page on click', () => {
        browser.get('http://localhost:8100');//opening the app
        let elemen = element(by.css('ion-content button'));
        let click = elemen.click();//clickin the button successfully and navigating to other page.
        let pageChecks = element(by.buttonText('Click to Forms'));//on otherpage select the button.
        pageChecks.click();//clicking the button but fails to locate the button.
    });
it('navigates to the next page on click', () => {
        browser.get('http://localhost:8100');
        let elemen = element(by.css('ion-content button'));
        elemen.click();
        let pageChecks = element(by.buttonText('Click to Forms'));
        let EC = protractor.ExpectedConditions;
        // let button = element(by.css('#button'));
        let button = $('#button');
        let clickable = EC.elementToBeClickable(button);
        browser.wait(clickable, 5000);
        button.click();
        let ele = $$('#form');
        let text = ele.getText().then((value)=>{
            console.log(value),
            expect(value).toContain('Forms');
            expect(value).toContain('');
        });
            });