国产精品天干天干,亚洲毛片在线,日韩gay小鲜肉啪啪18禁,女同Gay自慰喷水

歡迎光臨散文網(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')方法報錯的評論 (共 條)

分享到微博請遵守國家法律
沐川县| 湖南省| 太保市| 呈贡县| 东方市| 五家渠市| 习水县| 隆昌县| 长沙市| 富蕴县| 张家口市| 潞城市| 兰溪市| 株洲市| 新巴尔虎右旗| 西藏| 广元市| 石台县| 酉阳| 西林县| 新沂市| 米林县| 新宁县| 沙河市| 康保县| 车险| 新闻| 元谋县| 当涂县| 青神县| 上林县| 天祝| 洛川县| 延寿县| 团风县| 和硕县| 准格尔旗| 金昌市| 客服| 潼关县| 五峰|