如何检查元素并找到正确的元素?我正在使用 Python 和 Selenium
Posted
技术标签:
【中文标题】如何检查元素并找到正确的元素?我正在使用 Python 和 Selenium【英文标题】:How inspect element and find the correct element? I'm using Python and Selenium 【发布时间】:2022-01-12 00:27:01 【问题描述】:我需要访问菜单并使用 find_element_by_css_selector、find_element_by_name 或 driver.find_elements_by_id("#####").click()
选择一个选项,但它不起作用,我认为这是因为有多个选项可供选择。
这里是一个例子和下面的代码:
#Botão de mostrar descrição da cotação "hidden"
driver.find_elements_by_id("Mostrar412659").click()
【问题讨论】:
欢迎来到 Stack Overflow。请阅读How to Ask 和meta.***.com/questions/284236,并注意这不是论坛。 【参考方案1】:我注意到您的代码中有错字。
您的代码:
driver.find_elements_by_id("Mostrar412659").click()
正确的代码:
driver.find_element_by_id("Mostrar412659").click()
答案:
您必须展开选择标签才能看到选项。完成此操作后,您可以右键单击该选项并复制查找元素所需的任何内容。
以图片为例。
请记住,很多时候最好使用 WebDriverWait 类来单击一个元素。喜欢:
from selenium.webdriver.support.wait import WebDriverWait
elem = WebDriverWait(driver, 30).until(
EC.element_to_be_clickable((By.ID,'Cotacoes')))
elem.click()
示例代码
driver.find_element_by_id('Cotacoes').click()
driver.find_element_by_xpath('//*[@id="Cotacoes"]/option[1]').click()
示例代码 2
elem = WebDriverWait(driver, 30).until(
EC.element_to_be_clickable((By.ID, 'Cotacoes')))
elem.click()
elem = WebDriverWait(driver, 30).until(
EC.element_to_be_clickable((By.XPATH, '//*[@id="Cotacoes"]/option[1]')))
elem.click()
!!将 XPATH 和 ID 值更改为您的 ID 和 XPATH !!
如果您对此有任何疑问,请告诉我!
【讨论】:
在这种情况下,“Cotacoes”只是状态名称,但实际选项是另一个。下面你可以正常看到。 imgur.com/a/sEuIXrA这种情况怎么办? 你好卢卡斯。您必须右键单击选项,选择复制>复制 XPath。我会用一个例子来更新我的答案以上是关于如何检查元素并找到正确的元素?我正在使用 Python 和 Selenium的主要内容,如果未能解决你的问题,请参考以下文章