提问者:小点点

使用Selenium/Python查找按钮元素


我试图在以下页面找到一个按钮-https://www.dukascopy.com/swiss/english/marketwatch/sentiment/

我试图找到的按钮是流动性提供者按钮

我尝试在driver.find_element_by_xpath(。。。)中同时使用xpath和完整xpath 但它似乎根本找不到按钮的位置。 我还尝试了所有其他find_element方法,但都没有效果。

我在使用Xpath时遇到以下错误

raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {"method":"xpath","selector":"//*[@id=":1"]"}
(Session info: chrome=83.0.4103.97)

如有任何帮助,我们将不胜感激。 谢谢


共2个答案

匿名用户

首先,它根本不是一个按钮。 这是一个分区。 其次,它位于iframe内。 iframes或frames内的元素不存在于主顶级文档中。 你必须换个位置去看他们。 像这样的东西会管用的。

# get the iframe element
iframe = driver.get_element_by_tag_name('iframe')
# switch to it
driver.switch_to_frame(iframe)
# with the new frame active locate the element
liquidity_customers = driver.find_element_by_xpath("//*[text()='Liquidity consumers']").click()
# switch back to top level of document
driver.switch_to_default_content()

匿名用户

查看页面,“流动性提供者”唯一使用的地方是在您想要的区域,所以,

driver.find_elements_by_xpath("//*[contains(text(), 'Liquidity providers')]")

注意:这将返回一个元素列表,您需要列表中唯一的一个。