Python 3.x 在SeleniumWebDriver代码中查找元素

Python 3.x 在SeleniumWebDriver代码中查找元素,python-3.x,selenium,xpath,css-selectors,webdriverwait,Python 3.x,Selenium,Xpath,Css Selectors,Webdriverwait,如何查找上面的网络聊天输入消息文本。我尝试了几种选择,但似乎都不管用 driver.find_elements_by_xpath("/html/body/app-root/bot-component/div[2]/div/div[2]/div[2]/form") driver.find_element_by_xpath("//input[type='text]") driver.find_element_by_xpath("//*[type='text]") 您应该获得属性的值。像这样的 驱动

如何查找上面的网络聊天输入消息文本。我尝试了几种选择,但似乎都不管用

driver.find_elements_by_xpath("/html/body/app-root/bot-component/div[2]/div/div[2]/div[2]/form")
driver.find_element_by_xpath("//input[type='text]")
driver.find_element_by_xpath("//*[type='text]")

您应该获得属性的值。像这样的


驱动程序。通过xpath(“//输入[type='text]”)查找元素。获取属性(“type”)

要查找Data=id的值吗

        element = driver.find_element_by_xpath("//input[@type='text']").get_attribute("data-id")
        print(element)
或者您想在该标记上获取xpath定位器

    driver.find_element_by_xpath("//input[@data-id='webchat-sendbox-input']")
请尝试将其置于代码上方:

    driver.switch_to.default_content()
要定位
标记,必须将
元素的WebDriverWait设置为可点击()
,并且可以使用以下任一选项:

  • 使用
    CSS\u选择器

    element = WebDriverWait(browser, 20).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "div[data-id='webchat-sandbox-input'][@aria-label='Type your message']")))
    
  • 使用
    XPATH

    element = WebDriverWait(browser, 20).until(EC.element_to_be_clickable((By.XPATH, "//input[@data-id='webchat-sandbox-input' and @aria-label='Type your message']")))
    

要查找元素还是文本?