【发布时间】:2018-03-27 19:05:01
【问题描述】:
我是 Selenium 新手,我正在 Browserstack 上运行我的 selenium 脚本。
一切正常,直到我到达页面底部的 10%。
我收到以下错误:
未捕获的 WebDriverError:Appium 错误:未知错误:元素在点 (20, 324) 处不可点击。其他 元素会收到点击: ... (会话信息:chrome=58.0.3029.83) (驱动信息: chromedriver=2.29.461571 (8a88bbe0775e2a23afda0ceaf2ef7ee74e822cc5),platform=Linux 3.19.8-100.fc20.x86_64 x86_64)
这是我的代码:
describe.only(testTitle, function () {
before(function () {
driver = driverConfiguration.getDriverConfiguration(testTitle, 'chrome')
})
after(function (done) {
driver.quit().then(done)
})
it('Sample tests', function (done) {
driver.get('https://www.test.com').then(function(){
driver.findElement(webdriver.By.name('cardNumber')).sendKeys('0000000000').then(function(){
driver.findElement(webdriver.By.id('billingLine1')).sendKeys('test');
driver.findElement(webdriver.By.id('billingLine2')).sendKeys('test');
driver.findElement(webdriver.By.id('billingCity')).sendKeys('San Jose');
driver.findElement(webdriver.By.id('agree')).click(); // ERROR!!!!!
}).then(function() {
driver.quit().then(done);
})
});
})
})
当我执行以下操作时:
// return driver.wait(function() {
// return driver.findElement(webdriver.By.id('agree')).isDisplayed();
// }, 1000);
它说的是真的。该元素是可见的。
在三星 Galaxy S8 上使用 Chrome
我不知道如何解决这个问题。
【问题讨论】:
-
我之前遇到过这个错误,但我能够通过确保单击时元素在屏幕上可见来解决它。
-
当我尝试执行这段代码时:` // return driver.wait(function() { // return driver.findElement(webdriver.By.id('agree')).isDisplayed() ; // }, 1000);` 它说的是真的。即元素是可见的。
-
不知道如何解决这个问题 :( 没有静态编码向下滚动。
-
这就是我最终对 driver.executeScript() 所做的事情——我不知道为什么元素在代码可见时必须在屏幕上,但它确实让它工作:)
标签: javascript selenium ui-automation browserstack