我有一个包含源代码的页面,如下面的代码。在执行操作后,在其中显示“撤消”和“关闭”按钮。我试图单击“关闭”按钮。我已经尝试了下面的所有三个代码块,但都无法正常工作。有人可以指出我做错了什么,还是建议其他尝试?
html来源:
<div class="_3Aslx7L3GVI4XM7PUyYKza action-bar"><div class="container"><i class="success-icon fontello-ok-circle"></i><div class="success-message">Your stuff is going to <span>place</span> is on its way.</div><div class="gh69ID1m3_xtdTUQuwadU"><button class="c-button c-button--gray"> Undo</button></div><div class="gh69ID1m3_xtdTUQuwadU"><button class="c-button c-button--blue"> Close</button></div></div></div>
代码尝试:
#driver.find_element_by_id("gh69ID1m3_xtdTUQuwadU").click()
driver.find_element_by_css_selector('.c-button.c-button--blue').click()
#driver.find_element_by_link_text('Close').click()
错误:
---------------------------------------------------------------------------
ElementNotVisibleException Traceback (most recent call last)
<ipython-input-15-6d570be770d7> in <module>()
1 #driver.find_element_by_id("gh69ID1m3_xtdTUQuwadU").click()
----> 2 driver.find_element_by_css_selector('.c-button.c-button--blue').click()
3 #driver.find_element_by_link_text('Close').click()
~/anaconda/envs/py36/lib/python3.6/site-packages/selenium/webdriver/remote/webelement.py in click(self)
78 def click(self):
79 """Clicks the element."""
---> 80 self._execute(Command.CLICK_ELEMENT)
81
82 def submit(self):
~/anaconda/envs/py36/lib/python3.6/site-packages/selenium/webdriver/remote/webelement.py in _execute(self, command, params)
626 params = {}
627 params['id'] = self._id
--> 628 return self._parent.execute(command, params)
629
630 def find_element(self, by=By.ID, value=None):
~/anaconda/envs/py36/lib/python3.6/site-packages/selenium/webdriver/remote/webdriver.py in execute(self, driver_command, params)
318 response = self.command_executor.execute(driver_command, params)
319 if response:
--> 320 self.error_handler.check_response(response)
321 response['value'] = self._unwrap_value(
322 response.get('value', None))
~/anaconda/envs/py36/lib/python3.6/site-packages/selenium/webdriver/remote/errorhandler.py in check_response(self, response)
240 alert_text = value['alert'].get('text')
241 raise exception_class(message, screen, stacktrace, alert_text)
--> 242 raise exception_class(message, screen, stacktrace)
243
244 def _value_or_default(self, obj, key, default):
ElementNotVisibleException: Message: element not interactable
(Session info: chrome=72.0.3626.109)
(Driver info: chromedriver=2.42.591059 (a3d9684d10d61aa0c45f6723b327283be1ebaad8),platform=Mac OS X 10.12.6 x86_64)
与文本的元素 关闭 是一个动态的元素,以便找到你要引起元素 WebDriverWait 的 元素是可点击 ,你既可以使用以下方法解决:
使用CSS_SELECTOR
:
WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "div.action-bar button.c-button.c-button--blue"))).click()
使用XPATH
:
WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//div[contains(@class, 'action-bar')]//button[@class='c-button c-button--blue' and normalize-space()='Close']"))).click()
注意 :您必须添加以下导入:
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
问题内容: 我似乎无法找到一种方法来单击正确的元素以获取所需的网址。本质上,我试图在youtube搜索中单击 顶部 视频(返回最高排名的视频)。 如何解决ElementNotInteractableException:元素在SeleniumWebdriver中不可见? ->这是针对Java的,但是它让我朝着正确的方向前进(知道我需要执行JavaScript) http://www.teachmes
我试图登录到beeradvocate.com抓取(抓取)一些啤酒数据。我试过硒,但失败了。 这是html 我尝试使用名称、值和类,但一切都失败了。我最后一次尝试Xpath,但也失败了。 网站和检查 我的代码: 我已经使按钮工作: 然而,我需要能够执行发送_键来输入id和pw来登录。。。有人知道吗?
我有两个输入文本 通过打印元素标题,我确认了第一个和第二个输入元素都是可访问的。到目前为止,我尝试了setAttribute,executescript……但没有一个有效(或者我做了一些错误)(也许,它可能对谷歌chrome自动更新有作用?这是我现在唯一能想到的)
问题内容: 因此,我尝试使用selenium单击下一步按钮,我尝试使用以下代码,但错误结束。 元素 我的密码 但是然后输出这些错误 任何人都对如何正确单击该按钮有任何想法? 问题答案: 此错误消息… …暗示 ChromeDriver 无法找到所需的元素。 找到所需的元素 按照您共享的HTML来单击该元素,您可以使用以下 定位策略之一 : : : 但是,您的主要问题是所使用的二进制文件之间的 版本兼
问题内容: 我正在尝试在以下网站中输入用户名和密码:https : //www.thegreatcoursesplus.com/sign- in 这给出了以下异常: 然后我尝试使用Java脚本: 没有错误,但没有文本发送到“电子邮件地址”字段。 有人可以指导我以正确的方式输入电子邮件地址,密码,然后单击“登录”。 感谢您的协助 问题答案: 此错误消息… …表示所需的 元素 在 WebDriver
我试图点击的div的HTML是: 我想使用。单击类名为'class=“btn btn-green''的按钮上的()。 我已经使用以下代码来选择元素(在遵循其他类似SO问题的解决方案后)。 谢谢