无法定位元素,元素id每次都不唯一

时间:2016-03-04 08:59:34

标签: selenium-webdriver

我正在尝试使用xpath定位元素,但无法使其独特,因为元素的某些部分每次都是新的。我有以下元素ID:

173273

但是对于每个门户网站,这个数字都会发生变化65662dnn_ctr65662_ProgramWizardBase_ctl00_AddNewLink

,ID变为Environment: Request Method: GET Request URL: https://<ServerURL>/complete/fiware/?state=SDyJk9ru8wSLwUZIRtSrwI86jznMIv8O&code=WzIZ11YpmGAuZoltvTTGMGoP45ZtHe Django Version: 1.6.11 Python Version: 2.7.9 Installed Applications: ('django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'django.contrib.admin', 'wirecloud.commons', 'wirecloud.defaulttheme', 'compressor', 'south', 'wirecloud.catalogue', 'wirecloud.platform', 'wirecloud.fiware', 'social.apps.django_app.default') Installed Middleware: ('wirecloud.commons.middleware.URLMiddleware',) Traceback: File "/usr/local/venv/lib/python2.7/site-packages/django/core/handlers/base.py" in get_response 112. response = wrapped_callback(request, *callback_args, **callback_kwargs) File "/usr/local/venv/lib/python2.7/site-packages/django/views/decorators/cache.py" in _wrapped_view_func 52. response = view_func(request, *args, **kwargs) File "/usr/local/venv/lib/python2.7/site-packages/django/views/decorators/csrf.py" in wrapped_view 57. return view_func(*args, **kwargs) File "/usr/local/venv/lib/python2.7/site-packages/social/apps/django_app/utils.py" in wrapper 51. return func(request, backend, *args, **kwargs) File "/usr/local/venv/lib/python2.7/site-packages/social/apps/django_app/views.py" in complete 28. redirect_name=REDIRECT_FIELD_NAME, *args, **kwargs) File "/usr/local/venv/lib/python2.7/site-packages/social/actions.py" in do_complete 43. user = backend.complete(user=user, *args, **kwargs) File "/usr/local/venv/lib/python2.7/site-packages/social/backends/base.py" in complete 41. return self.auth_complete(*args, **kwargs) File "/usr/local/venv/lib/python2.7/site-packages/social/utils.py" in wrapper 229. return func(*args, **kwargs) File "/usr/local/venv/lib/python2.7/site-packages/social/backends/oauth.py" in auth_complete 383. method=self.ACCESS_TOKEN_METHOD File "/usr/local/venv/lib/python2.7/site-packages/social/backends/oauth.py" in request_access_token 361. return self.get_json(*args, **kwargs) File "/usr/local/venv/lib/python2.7/site-packages/social/backends/base.py" in get_json 229. return self.request(url, *args, **kwargs).json() File "/usr/local/venv/lib/python2.7/site-packages/social/backends/base.py" in request 224. raise AuthFailed(self, str(err)) Exception Type: AuthFailed at /complete/fiware/ Exception Value: Authentication failed: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:581)

请建议我如何让它独一无二。

2 个答案:

答案 0 :(得分:2)

通过这个,

css=a[id^='id_prefix_']

css=a[id$='_id_suffix']

css=a[id*='id_pattern']

希望,它一定能帮到你:)。

答案 1 :(得分:1)

您可以按部分ID

找到该元素
driver.findElement(By.cssSelector("id*='ProgramWizardBase_ctl00_AddNewLink'"));

这将搜索id包含文本ProgramWizardBase_ctl00_AddNewLink

的女巫