Python selenium能否将aria uuid识别为对象识别的ID?
我最近建议我的开发人员在我正在工作的项目的每个元素中添加ID,以使自动化更加健壮,他们在aria uuid中为每个元素添加了ID。我无法识别这些ID!我想知道这是否可能 我正在使用python/selenium 我尝试过通过ID识别元素,我做过CSS选择器和XPath,但它们在新构建之间有过中断的历史 相关html:Python selenium能否将aria uuid识别为对象识别的ID?,python,selenium,selenium-webdriver,xpath,css-selectors,Python,Selenium,Selenium Webdriver,Xpath,Css Selectors,我最近建议我的开发人员在我正在工作的项目的每个元素中添加ID,以使自动化更加健壮,他们在aria uuid中为每个元素添加了ID。我无法识别这些ID!我想知道这是否可能 我正在使用python/selenium 我尝试过通过ID识别元素,我做过CSS选择器和XPath,但它们在新构建之间有过中断的历史 相关html: input class="short ng-valid ng-not-empty ng-valid-min ng-valid-required" name="question_16
input class="short ng-valid ng-not-empty ng-valid-min ng-valid-required" name="question_16" type="number" aria-uuid="question_16_input" ng-required="true" ng-min="0" ng-model="$ctrl.vault['question_16'].value"
每次我得到断言/超时错误时,最好使用CSS选择器
[aria uuid='question\u 16\u input']
,是如果生成的是静态的,您应该能够根据要使用的aria uuid
识别每个单独的元素
根据您共享的HTML,生成的aria uuid
似乎是动态的。因此,aria uuid
单独不会对您有所帮助。在这些情况下,您必须使用aria uuid
以及其他属性来唯一标识元素。要标识此元素,可以使用以下任一项:
- 使用
CSS\u选择器
:
WebDriverWait(driver_init, delay1).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "input.short.ng-valid.ng-not-empty.ng-valid-min.ng-valid-required[aria-uuid$='_input'][name^='question_']"))).click()
- 使用
XPATH
:
WebDriverWait(driver_init, delay1).until(EC.element_to_be_clickable((By.XPATH, "//input[@class='short ng-valid ng-not-empty ng-valid-min ng-valid-required' and contains(@aria-uuid, '_input')][starts-with(@name, 'question_')]"))).click()
请使用相关HTM更新问题感谢您抽出时间回答我的问题。我以前使用过CSS选择器/XPath,但我没有考虑将它们与aria UUID结合使用。非常感谢。
WebDriverWait(driver_init, delay1).until(EC.element_to_be_clickable((By.XPATH, "//input[@class='short ng-valid ng-not-empty ng-valid-min ng-valid-required' and contains(@aria-uuid, '_input')][starts-with(@name, 'question_')]"))).click()