gpt4 book ai didi

ios - Nightwatch.js - 无法使用 Appium(iOS 模拟器)执行 touchAction 或滚动,寻找解决方案

转载 作者:行者123 更新时间:2023-11-28 19:25:16 25 4
gpt4 key购买 nike

我正在通过 Nightwatch 和 Appium 运行一些测试,但我无法使用 iOS 模拟器成功实现滚动操作。我的测试设置为能够在 Chrome、Safari 或 Firefox 浏览器或使用 Safari 的 iOS 模拟器上运行。该应用程序是使用 React 构建的,我使用的是 Javascript。一切运行顺利,直到我必须滚动到屏幕上的特定元素。

当使用网络浏览器时,我需要做的就是在特定元素上发送一个 .click() 方法,它会自动将该元素显示在 View 中,但在 iOS 模拟器上似乎并非如此。

这是我在 nightwatch.conf.js 文件中为 iOS 设置的内容。到目前为止,我从网上搜索中看到的任何方法都不够用。 Appium 文档列出了几种方法,但它们都不是可执行的,或者没有提示地失败。有没有人对如何使用此设置正确执行滚动有可能的解决方案或建议?谢谢,非常感谢

    "ios": {
"selenium_start_process": false,
"selenium_port": 4723,
"selenium_host": "localhost",
"silent": true,
"automationName": "XCUITest",
"desiredCapabilities": {
"browserName": "safari",
"platformName": "iOS",
"platformVersion": "12.2",
"deviceName": "iPad Pro (9.7 -inch)"
}
},

这是我尝试实现的示例(目标是移动到按钮元素并在它进入 View 后单击它 - 它是一个下拉列表)

       browser
.assert.elementPresent('div[data-mr="quiz-dont-know"]')
.click('div[data-mr="quiz-dont-know"]')
.assert.elementPresent('div[data-mr="grey-info"]')
browser.pause(2000)
browser.element('css selector', 'div[data-"mr=grey-info"]', function(button) {
console.log("THIS ELEMENT IS " + button.value.ELEMENT);
browser.moveTo(button.value.ELEMENT, 10, 10)
browser.elementIdClick(button.value.ELEMENT);
})
.pause(2000)
.assert.elementPresent('div[data-mr="grey-info-options"]')

最佳答案

我想你想使用“.scrollIntoView()”

buttons.value.forEach((button, index) => {
browser.elementIdText(button.ELEMENT, result => {
if(result.value === 'None') {
console.log("THIS ELEMENT IS " + button.ELEMENT);
browser.execute(function(button) {
//var elmnt =button // based on user comment
var elmnt = document.querySelector([data-mr="grey-info"]')
elmnt.scrollIntoView();
});
browser.elementIdClick(button.ELEMENT);
}
});
});

关于ios - Nightwatch.js - 无法使用 Appium(iOS 模拟器)执行 touchAction 或滚动,寻找解决方案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59397974/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com