Selenium-Python-find_element_by_link_text不确定是什么';这是不对的
这是我第一次同时使用Python和Selenium,我正在尝试选择并点击这个网站导航栏的一个元素——stockfetcher.com 我想单击导航栏上的MyFilters选项卡。检查完元素后,我看到该元素的HTML代码是Selenium-Python-find_element_by_link_text不确定是什么';这是不对的,python,selenium,selenium-webdriver,webdriver,Python,Selenium,Selenium Webdriver,Webdriver,这是我第一次同时使用Python和Selenium,我正在尝试选择并点击这个网站导航栏的一个元素——stockfetcher.com 我想单击导航栏上的MyFilters选项卡。检查完元素后,我看到该元素的HTML代码是 这就是我想要做的 驱动程序。通过链接文本(“MyFilters”)查找元素。单击() 我得到了这个错误 AttributeError:“非类型”对象没有属性“单击” 知道怎么了吗?我在网上看到的大多数示例中,标签内的任何内容都没有“”标记。这是不是把我搞砸了?链接文本有时对你
这就是我想要做的
驱动程序。通过链接文本(“MyFilters”)查找元素。单击()
我得到了这个错误
AttributeError:“非类型”对象没有属性“单击”
知道怎么了吗?我在网上看到的大多数示例中,标签内的任何内容都没有“”标记。这是不是把我搞砸了?链接文本有时对你发送给它的内容非常挑剔,我发现你必须匹配实际链接显示的内容,而不是href后面的值。由于该站点显示的是MyFilters
,请尝试执行以下操作:
driver.find_element_by_link_text('MyFilters').click()
在过滤器之后没有空格。我在我这边做了测试,它似乎起作用了
此外,该错误与您作为示例给出的错误不匹配,它将在抛出NoneType
has no click()事件之前抛出NoSuchElementException
。无论哪种方式,上面的内容都应该适合您。链接文本有时对您发送给它的内容非常挑剔,我发现您必须匹配实际链接显示的内容,而不是href后面的值。由于该站点显示的是MyFilters
,请尝试执行以下操作:
driver.find_element_by_link_text('MyFilters').click()
在过滤器之后没有空格。我在我这边做了测试,它似乎起作用了
此外,该错误与您作为示例给出的错误不匹配,它将在抛出NoneType
has no click()事件之前抛出NoSuchElementException
。无论采用哪种方式,上述方法都应该适用。该错误意味着您无法调用。单击()
,如果您将。单击()
替换为。fsghudghur()
,您将收到相同的错误。任何find\u element\u by\u link\u text
返回的函数都没有click()
函数。请尝试运行type(driver.find\u element\u by\u link\u text(“MyFilters”)
。看看返回的是不是你想要的。还可以尝试使用print(driver.find\u element\u by\u link\u text(“MyFilters”)
打印它。这也很好吗?@EthanK我在代码中添加了这些,但我在控制台上没有看到任何东西。那么link_text的方法在这里不起作用了?好吧,如果你没有看到任何东西,那么它就没有运行,或者你没有看到控制台。如果出现错误,.click()
在这里不起作用,但是.click()
在任何地方都不起作用。检查文档以确保.click()
存在,如果不存在,请确保您使用的是正确的版本。@EthanK.click()确实有效。因为在此之前,我必须单击按钮才能登录。实际上,我在控制台=>>selenium.common.exceptions.NoSuchElementException:Message:没有这样的元素:无法定位元素:{“方法”:“链接文本”,“选择器”:“MyFilters”}。该错误意味着您无法调用。单击()
,如果将替换为。单击()
,您将得到相同的错误。任何find\u element\u by\u link\u text
返回的函数都没有click()
函数。请尝试运行type(driver.find\u element\u by\u link\u text(“MyFilters”)
。看看返回的是不是你想要的。还可以尝试使用print(driver.find\u element\u by\u link\u text(“MyFilters”)
打印它。这也很好吗?@EthanK我在代码中添加了这些,但我在控制台上没有看到任何东西。那么link_text的方法在这里不起作用了?好吧,如果你没有看到任何东西,那么它就没有运行,或者你没有看到控制台。如果出现错误,.click()
在这里不起作用,但是.click()
在任何地方都不起作用。检查文档以确保.click()
存在,如果不存在,请确保您使用的是正确的版本。@EthanK.click()确实有效。因为在此之前,我必须单击按钮才能登录。实际上,我在控制台=>>selenium.common.exceptions.NoSuchElementException:消息:没有这样的元素:无法定位元素:{“方法”:“链接文本”,“选择器”:“MyFilters”}好的,这样就行了!但如果我在“登录”单击后立即放置它,它将无法工作。但是,如果我在它们之间插入另一个find_element命令,那么第二个命令将起作用。可能是因为它在加载页面时试图单击?可能是这样,我会使用WebDriverWait
条件来确保您的元素首先可见。这篇文章对解决这个问题很有帮助,但听起来点击的问题已经解决了!这很好,好了,这就行了!但如果我在“登录”单击后立即放置它,它将无法工作。但是,如果我在它们之间插入另一个find_element命令,那么第二个命令将起作用。可能是因为它在加载页面时试图单击?可能是这样,我会使用WebDriverWait
条件来确保您的元素首先可见。这篇文章对解决这个问题很有帮助,但听起来点击的问题已经解决了!那很好。