如何检查元素并找到正确的元素?我正在使用 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的主要内容,如果未能解决你的问题,请参考以下文章

如何在自定义链表实现中找到最常见的元素?

如何使用 Chome 和/或 Firefox 上的检查窗口找到网页元素的 innerText 和 outerHTML?

如何找到xpath表单网页

Firebug:如何检查无法点击的元素?

如何正确遍历 getElementsByClassName

检查对象并返回是不是找到该元素