最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

Appium自動化測試微信小程序driver.set_clipboard_text('Clipboard data')方法報錯

2023-06-30 21:36 作者:怠惰の于  | 我要投稿

在使用Appium自動化測試微信小程序時,需要用到提前將內容設置到剪切板,但因為微信小程序大多無法用網(wǎng)頁打開,也就意味著它是WebView,而在WebView中Appium的一部分api將無法使用,包括設置剪切板內容driver.set_clipboard_text(),報錯內容如下:

raceback (most recent call last): File "D:\Code\FormAuto\app1.py", line 321, in <module> driver.set_clipboard_text("55566") File "D:\Code\FormAuto\venv\lib\site-packages\appium\webdriver\extensions\clipboard.py", line 61, in set_clipboard_text return self.set_clipboard(bytes(str(text), 'UTF-8'), ClipboardContentType.PLAINTEXT, label) File "D:\Code\FormAuto\venv\lib\site-packages\appium\webdriver\extensions\clipboard.py", line 48, in set_clipboard self.execute(Command.SET_CLIPBOARD, options) File "D:\Code\FormAuto\venv\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 346, in execute self.error_handler.check_response(response) File "D:\Code\FormAuto\venv\lib\site-packages\appium\webdriver\errorhandler.py", line 122, in check_response raise exception_class(msg=message, stacktrace=format_stacktrace(stacktrace)) selenium.common.exceptions.UnknownMethodException: Message: Method has not yet been implemented Stacktrace: NotYetImplementedError: Method has not yet been implemented at AndroidUiautomator2Driver.executeCommand (D:\Node\node_global\node_modules\appium\node_modules\appium-base-driver\lib\basedriver\driver.js:328:13) at AppiumDriver.executeCommand (D:\Node\node_global\node_modules\appium\lib\appium.js:563:36) at runMicrotasks (<anonymous>) at processTicksAndRejections (node:internal/process/task_queues:96:5) at asyncHandler (D:\Node\node_global\node_modules\appium\node_modules\appium-base-driver\lib\protocol\protocol.js:297:21)

簡單來說,就是WebView不支持driver.set_clipboard_text()方法。

簡單來說,就是WebView不支持driver.set_clipboard_text()方法。

解決辦法有兩個:

1.用adb進行操作:

? ?command = f"adb shell input text {text}" ? ?os.system(command)

這個方法直接跨過了WebView和NATIVE_APP的限制,可以在任何應用上使用,但弊端是不支持中文,如果你需要剪切的內容沒有中文,那adb是最好的選擇,因為它通用性很廣,如果內容有中文,也可以通過uncode編碼來轉換,但會比較麻煩。

2.WebView和NATIVE_APP之間來回切換:

因為driver.set_clipboard_text()只是無法在.WebView中執(zhí)行,那我切回來剪切,弄完了在換回去,具體操作如下:

# 在 WebView 上下文中 driver.switch_to.context('WEBVIEW_1') element = driver.find_element_by_css_selector('#form_field') element.send_keys('Form data') # 切換回 NATIVE_APP 上下文來設置剪貼板的文本 driver.switch_to.context('NATIVE_APP') driver.set_clipboard_text('Clipboard data') # 再次切換到 WebView 上下文來繼續(xù) driver.switch_to.context('WEBVIEW_1') other_element = driver.find_element_by_css_selector('#other_form_field') other_element.send_keys('More form data')

該方法針對的是WebView應用,弊端是局限性較大。

Appium自動化測試微信小程序driver.set_clipboard_text('Clipboard data')方法報錯的評論 (共 條)

分享到微博請遵守國家法律
呼和浩特市| 沭阳县| 浮山县| 神农架林区| 黄梅县| SHOW| 汝州市| 大城县| 商水县| 陇西县| 嵊泗县| 三门峡市| 平利县| 宜州市| 麻阳| 固镇县| 汕头市| 洛隆县| 丰原市| 根河市| 鄂州市| 淮南市| 班戈县| 阿坝县| 思茅市| 西畴县| 磐安县| 锦州市| 和林格尔县| 南郑县| 沈阳市| 兰考县| 阜南县| 馆陶县| 邢台县| 东平县| 呼和浩特市| 安岳县| 鄄城县| 井陉县| 新郑市|