【问题标题】: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']")))