Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python selenium能否将aria uuid识别为对象识别的ID?_Python_Selenium_Selenium Webdriver_Xpath_Css Selectors - Fatal编程技术网

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

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

我最近建议我的开发人员在我正在工作的项目的每个元素中添加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" 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()