gpt4 book ai didi

python - selenium能否将aria-uuid识别为对象识别的ID?

转载 作者:太空宇宙 更新时间:2023-11-04 04:04:32 29 4
gpt4 key购买 nike

我最近建议我的开发人员为我正在努力的项目中的每个元素添加 ID,以使自动化更加健壮,他们将 aria-uuid 添加到每个元素。我找不到任何东西来识别这些 ID!我想知道这是否可能?

我正在使用 python/selenium。

我试过通过 ID 识别元素,我已经完成了 CSS 选择器和 xpath,但它们在新构建之间有中断的历史。

相关html:

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"
def click_element_by_id(self, driver_init, id1, message1, delay1, halt):
try:
element = WebDriverWait(driver_init, delay1).until(EC.element_to_be_clickable((By.ID, id1)))
element.click()
except TimeoutException:
if halt:
assert_that(True, message1).is_false()
else:
print(message1)

每次我得到断言/超时错误

最佳答案

理想情况下,您应该能够识别每个单独的元素及其 aria-uuid 与提供的 Selenium 一起使用生成的 aria-uuidstatic

根据您共享的 HTML,生成的 aria-uuid 似乎是动态的。所以单独使用 aria-uuid不会帮助您。在这些情况下,您必须使用 aria-uuid 以及其他 attributes 来唯一标识元素。要识别此元素,您可以使用以下任一 Locator Strategies :

  • 使用 CSS_SELECTOR:

    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()

关于python - selenium能否将aria-uuid识别为对象识别的ID?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57592158/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com