python - 应用程序突然启动和关闭,然后 Pycharm 抛出 element not found 异常
问题描述
PyCharm 代码:
from appium import webdriver
desired_caps = {}
desired_caps['platformName'] = 'Android'
desired_caps['automationName'] = 'UiAutomator2'
desired_caps['platformVersion'] = '10'
desired_caps['deviceName'] = 'AppiumEmulator'
desired_caps['app'] = ('G:\\Appium\\KickStartAppium\\Android_Demo_App.apk')
desired_caps['appPackage'] = 'com.google.android.apps.nexuslauncher'
desired_caps['appActivity'] = 'com.google.android.apps.nexuslauncher.NexusLauncherActivity'
desired_caps['udid'] = 'emulator-5554'
driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub', desired_caps)
driver.implicitly_wait(10)
ClickEle = driver.find_element_by_id("com.code2lead.kwad:id/EnterValue")
ClickEle.click()
PyCharm 错误:
"C:\Users\Nandha Kumar\PycharmProjects\AppiumLaunchApp\venv\Scripts\python.exe" "C:/Users/Nandha Kumar/PycharmProjects/AppiumLaunchApp/KickStartApp.py"
Traceback (most recent call last):
File "C:/Users/Nandha Kumar/PycharmProjects/AppiumLaunchApp/KickStartApp.py", line 19, in <module>
ClickEle = driver.find_element_by_id("com.code2lead.kwad:id/EnterValue")
File "C:\Users\Nandha Kumar\PycharmProjects\AppiumLaunchApp\venv\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 360, in find_element_by_id
return self.find_element(by=By.ID, value=id_)
File "C:\Users\Nandha Kumar\PycharmProjects\AppiumLaunchApp\venv\lib\site-packages\appium\webdriver\webdriver.py", line 279, in find_element
return self.execute(RemoteCommand.FIND_ELEMENT, {
File "C:\Users\Nandha Kumar\PycharmProjects\AppiumLaunchApp\venv\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 321, in execute
self.error_handler.check_response(response)
File "C:\Users\Nandha Kumar\PycharmProjects\AppiumLaunchApp\venv\lib\site-packages\appium\webdriver\errorhandler.py", line 31, in check_response
raise wde
File "C:\Users\Nandha Kumar\PycharmProjects\AppiumLaunchApp\venv\lib\site-packages\appium\webdriver\errorhandler.py", line 26, in check_response
super().check_response(response)
File "C:\Users\Nandha Kumar\PycharmProjects\AppiumLaunchApp\venv\lib\site-packages\selenium\webdriver\remote\errorhandler.py", line 242, in check_response
raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.NoSuchElementException: Message: An element could not be located on the page using the given search parameters.
解决方案
似乎 Selenium 在这里找不到您指定的元素:
ClickEle = driver.find_element_by_id("com.code2lead.kwad:id/EnterValue")
selenium 然后总是抛出异常并结束程序。如果您希望代码继续运行,您必须从 selenium 导入 NoSuchElementException 并这样做:首先导入异常:
from selenium.common.exceptions import NoSuchElementException
然后你可以参考它
except NoSuchElementException:
# handle the element not existing
我的答案只是从这种绅士的答案(第一个答案)中复制而来:python selenium webscraping "NoSuchElementException" notrecognized
推荐阅读
- hadoop - 如何在私有云上管理 Hadoop 和 Kubernetes 集群的磁盘
- jquery - 通过按钮单击更改 SVG 颜色不适用于所有 SVG 图像 | jQuery
- scala - 使用 pureconfig 的自定义类型?
- javascript - Vue.js 2 v-for 循环调用为无限
- powershell - 通过多个搜索搜索文件并删除文件中的匹配项
- go - 如何知道yaml整数值是否为空
- c - 在 main() 之外访问进程的参数
- python - Django-如何计算访问次数?
- angular - Angular 7,Jasmine 代码覆盖不包含函数,而测试返回肯定
- salesforce - 如何将 Salesforce 机会对象集成到对讲机