【问题标题】:How inspect element and find the correct element? I'm using Python and Selenium如何检查元素并找到正确的元素?我正在使用 Python 和 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()

【问题讨论】:

标签: python selenium selenium-webdriver web-inspector


【解决方案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。我会用一个例子来更新我的答案
猜你喜欢
  • 2020-02-12
  • 1970-01-01
  • 2019-10-23
  • 1970-01-01
  • 2019-04-24
  • 1970-01-01
  • 2021-06-07
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多