我正在尝试使用selenium
点击linkedin页面上的以下按钮:
<button id="ember607" class="share-actions__primary-action artdeco-button artdeco-button--2 artdeco-button--primary ember-view" data-control-name="share.post"><!---->
<span class="artdeco-button__text">
Post
</span></button>
我试着用途:
driver.find_element_by_id
,但按钮的id似乎一直在更改数字driver.find_element_by_xpath
,但其中包含按钮编号,因此也会失败driver.find_element_by_class_name('share-actions__primary-action artdeco-button artdeco-button--2 artdeco-button--primary ember-view')
,即使类名正确,也会失败?
基本上,所有方法都会产生相同的错误消息:
Exception has occurred: NoSuchElementException
Message: no such element: Unable to locate element:{[*the_error_is_here*]}
我也尝试了xpath contains()方法,但是没有找到按钮。
请按一下这个按钮的正确方法是什麽?
我在windows
上使用的是python版本3.9
和driver = webdriver.Chrome
5条答案
按热度按时间5tmbdcev1#
该元素是启用了Ember.js的元素。因此,要对文本为Post的元素执行
click()
,可以使用以下定位器策略之一:css_selector
:xpath
:理想情况下,要单击元素,您需要引发WebDriverWait for
element_to_be_clickable()
,您可以使用以下任一定位器策略:CSS_SELECTOR
:XPATH
:*注意:必须添加以下导入:
参考
您可以在以下位置找到相关的详细讨论:
hjzp0vay2#
有时候,按钮会出现问题,此时无法单击。请尝试以下操作:
这不是最干净的方式来点击任何按钮 selenium ,但对我来说,这种方法的作品大多每一次。
lx0bsm1f3#
或者
fzwojiic4#
使用Post找到span并单击其按钮标记。
mfpqipee5#
通过xpath,这应该可以工作:
把它与等待元素结合起来:
你的按类选择器的问题是多个类名。看这个问题:How to get elements with multiple classes,了解如何解决此问题的详细信息。