相关疑难解决方法(0)

WebDriver点击()vs JavaScript点击()

故事:

在StackOverflow上,我看到用户报告他们无法通过selenium WebDriver"click"命令单击一个元素,并且可以通过执行脚本单击JavaScript来解决它.

Python中的示例:

element = driver.find_element_by_id("myid")
driver.execute_script("arguments[0].click();", element)
Run Code Online (Sandbox Code Playgroud)

WebDriverJS/Protractor中的示例:

var elm = $("#myid");
browser.executeScript("arguments[0].click();", elm.getWebElement());
Run Code Online (Sandbox Code Playgroud)

问题:

为什么在常规WebDriver点击时没有点击"通过JavaScript"?究竟是什么时候发生这种变通方法的缺点(如果有的话)?

我个人使用这种解决方法而没有完全理解为什么我必须这样做以及它可能导致什么问题.

javascript python selenium selenium-webdriver protractor

119
推荐指数
4
解决办法
3万
查看次数

量角器+镀铬驱动器:元素在点上无法点击

嗨,我在使用基本量角器测试时遇到一些麻烦.

我的设置:

  • 我使用requirejs所以我使用angular.bootstrap()初始角度,而不是ng-app attr.根据量角器文档,这不是开箱即用的支持,但似乎适用于不涉及点击的测试.
  • 量角器conf.json:

    "use strict";
    exports.config = {
        specs: '../E2ETests/**/*.js',
        chromeOnly: true,
        getPageTimeout: 30000,
        allScriptsTimeout: 30000
    }
    
    Run Code Online (Sandbox Code Playgroud)
  • 我使用了一些第三方jquery插件,我将其包装在指令中,我怀疑这些可能是问题的一部分.

考试:

"use strict";
describe('When clicking should add stuff', function () {
    var ptor;
    beforeEach(function () {
        browser.get('https://localhost/myApp');
        ptor = protractor.getInstance();
    });
    it('add stuff', function () {
        // If I comment this, the test pass. 
        element(by.id('add-stuff-button')).click();
        // This does not matter fails on the line above..
        expect(browser.getTitle()).toBeDefined();
    });
});
Run Code Online (Sandbox Code Playgroud)

错误:

UnknownError: unknown error: Element is not clickable at point (720, 881). …
Run Code Online (Sandbox Code Playgroud)

selenium-chromedriver angularjs protractor

32
推荐指数
5
解决办法
4万
查看次数

元素在点处不可点击 - 量角器

我收到一个错误,我试图点击的元素不是点击,我相信不是真的.

我的错误看起来:

 1) Open VehiclePage and populate data Populate vehicle data
  Message:
    UnknownError: unknown error: Element is not clickable at point (1315, 371). Other element would receive the click: <div class="form-con
rol combo-options ng-scope ng-animate ng-leave ng-leave-active" ng-if="comboBox.visible" on-click-outside="comboBox.hide">...</div>
 (Session info: chrome=39.0.2171.71)
 (Driver info: chromedriver=2.13.307647 (5a7d0541ebc58e69994a6fb2ed930f45261f3c29),platform=Windows NT 6.1 SP1 x86_64) (WARNING: The server
did not provide any stacktrace information)
ommand duration or timeout: 30 milliseconds
Run Code Online (Sandbox Code Playgroud)

我的部分代码:

it('Populate vehicle data', function() {
        browser.waitForAngular();
        element(by.css('div#datepicking i.glyphicon-calendar')).click();
        element(by.css('div#datepicking button[ng-click="select(\'today\')"]')).click();
        element(by.model('case.vehicle.adminData.paintColour')).sendKeys(browser.params.paintColour);       
        element(by.xpath('(//*[@id="form-mileage"])')).sendKeys(browser.params.mileage);                        
        element(by.id('form-mileage-unit')).click().then(function() { …
Run Code Online (Sandbox Code Playgroud)

javascript testing end-to-end protractor

10
推荐指数
2
解决办法
1万
查看次数

Testcafe 可以看到按钮但不能点击它

在 testcafe 测试中,我如何点击一个清晰可点击的元素(t.debug()我可以点击该元素)并且不使用ClientFunctiont.eval- 在 testcafe 的 github 问题中推荐的这些“解决方法”不起作用。

一些额外的考虑:

  • 我正在测试的代码是 Angular 1.7。
  • Selector被验证为正确的(我尝试了各种类型的选择)
  • 测试咖啡厅版本 1.8.4
  • t.wait在选择之前和之后尝试了不同的时间,然后单击
  • 我试过改变元素类型(<button>to<div>等)

javascript testing automated-tests angularjs testcafe

6
推荐指数
1
解决办法
1288
查看次数

Click()函数在量角器脚本中不起作用

我正在尝试使用Protractor和Appium在iPad模拟器中使用茉莉花框架对AngularJS网站进行自动化测试,sendkeys()功能正在用于用户名和密码,但是当我点击登录按钮时,测试通过,但操作不是完成:没有重定向到主页,并且没有为登录按钮显示单击效果,我确定该元素位置正确!因为当我希望gettext()等于"LOGIN"时,它会被传递但是没有重定向,即使我把browser.sleep(8000); 我的测试脚本放在这里:

    "use strict";
    require("jasmine-expect");
    var wd = require("wd");
    describe('my app', function() {
    it('should make the login test',function() {

//    browser.ignoresynchronization=true;
    browser.get("http://10.0.22.82:8080/jws/fetablet");
    expect(browser.getCurrentUrl()).toEqual(("http://10.0.22.82:8080/jws/fetablet/#/login"));

    element(by.model('credentials.username')).sendKeys('RET02').then(function(){
    element(by.model('credentials.password')).sendKeys('RET02').then(function(){
    element(by.css('.login-button')).click().then(function(){
    browser.sleep(8000); expect(browser.getCurrentUrl()).not.toEqual("http://10.0.22.82:8080/jws/fetablet/#/login");
    });
    });
    });
});
});
Run Code Online (Sandbox Code Playgroud)

还有其他方法可以正确找到点击按钮吗?这是我的HTML代码:

??<div class="lo??gin_lang"> <md-button class="lang_button" ng-click="changeLang()">{{lang}}</md-button> </div> 
<div layout="column" flex layout-align="center center" class="md-padding splash-background"> <div class="login-logo"> <img src="{{logoSrc}}"> </div> <form class="login-form" name="loginForm" ng-submit="login()"> 
<fieldset> <md-input-container class="md-block"> 
<label translate="login.USERNAME" ng-class="{'floating-label-rtl':dir==='rtl'}" 

class="login-label">Username</label> 
<input required ng-model="credentials.username" ng-focus="onFocus()" type="text"> 

<div ng-messages="loginForm.credentials.username.$error" ng-show="loginForm.credentials.username.$dirty"> 
<div ng-message="required" trans
??late="login.MESSAGE_REQUIRED">This is required.</div> …
Run Code Online (Sandbox Code Playgroud)

end-to-end jasmine angularjs appium protractor

4
推荐指数
1
解决办法
2万
查看次数

元素不可见错误

我试图点击我页面上的上传文件链接,但我说上传链接不可见.我试过将鼠标悬停在链接和下面的代码上.这对我来说很容易修复,所以我真的很困惑如何点击这个链接.我尝试过的:

var EC = protractor.ExpectedConditions;
var uploadLink = element(by.model('roomPlanCtrl.mm2010File'));

browser.wait(EC.elementToBeClickable(uploadLink), 10000);
uploadLink.click();
Run Code Online (Sandbox Code Playgroud)

HTML:

<span class="dg-link ng-untouched ng-valid ng-dirty ng-valid-parse" ngf-select="" ng-model="roomPlanCtrl.mm2010File" accept=".mms" ng-hide="roomPlanCtrl.hideImportLinks">Upload a MeetingMatrix 2010 File</span>
Run Code Online (Sandbox Code Playgroud)

javascript selenium automation angularjs protractor

3
推荐指数
1
解决办法
5541
查看次数