【问题标题】:finding element in selenium webdriver code在 selenium webdriver 代码中查找元素
【发布时间】:2020-03-23 19:14:09
【问题描述】:

如何找到上面的网络聊天输入消息文本。我尝试了几个选项,但似乎都没有工作

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]")

【问题讨论】:

  • 您要查找元素还是文本?

标签: python-3.x selenium xpath css-selectors webdriverwait


【解决方案1】:

你应该得到属性的值。像这样的。

driver.find_element_by_xpath("//input[type='text]").get_attribute("type")

【讨论】:

    【解决方案2】:

    您要查找 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()
    

    【讨论】:

      【解决方案3】:

      要定位<input>标签,你必须为element_to_be_clickable()诱导WebDriverWait,你可以使用以下Locator Strategies之一:

      • 使用CSS_SELECTOR

        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']")))
        

      【讨论】:

        猜你喜欢
        • 2012-12-12
        • 2017-09-12
        • 2021-03-31
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-07-04
        • 2014-08-13
        相关资源
        最近更新 更多