【问题标题】:Click on span in selenium python单击 selenium python 中的跨度
【发布时间】:2020-08-28 16:32:36
【问题描述】:

我知道这里的人说这是重复的,网上的答案都没有帮助我。下面是我的html代码


<div class="Headline"><div class="card mt15"><!-- react-empty: 350 --><div class="cardPad"><div class="widgetHead"><span class="widgetTitle">What do you want to wish </span><span class="edit icon">Edit</span></div><div class="widgetCont"><div class="prefill"><div> Good Morning</div></div></div></div></div></div>

在 UI 上的“标题”文本旁边有一个铅笔/钢笔图标,它具有“编辑图标”类,我想单击该铅笔图标,当弹出窗口打开时,我需要用文本更新它“早上好” 。我试图在 python 中使用 selenium 来实现这一点。

我尝试按 CSS_SELECTORS 查找并按 class_name 查找,但我无法点击它,有人可以请教我。

browser.find_element_by_css_selector('.Headline > div:nth-child(1) > div:nth-child(1) > div:nth-child(1) > span:nth-child(2)').click()

我尝试了上面的代码,但我得到了错误

selenium.common.exceptions.ElementClickInterceptedException: Message: element click intercepted: Element <span class="edit icon">...</span> is not clickable at point (478, 521). Other element would receive the click: <div class="ppContainer">...</div>
  (Session info: chrome=84.0.4147.135)

【问题讨论】:

  • 你是如何尝试使用 JavaScript 进行点击的,例如 driver.execute_script("arguments[0].click();", element)
  • 其实不,我不知道 JS 是如何工作的,所以只是通过类名和 css 选择器来使用dind
  • 您可以使用通过 css 选择器 find_element_by_css_selector('.Headline &gt; div:nth-child(1) &gt; div:nth-child(1) &gt; div:nth-child(1) &gt; span:nth-child(2)') 找到的相同元素。只需在前面提到的 java 脚本中传递这个元素
  • 谢谢 Kuldeep,页面底部有一个 cookie 弹出窗口,所以我无法点击欲望按钮,我处理了,一切正常

标签: html python-3.x selenium selenium-webdriver


【解决方案1】:

看起来您的元素不在窗口屏幕中并且被某些 div 重叠。试试javascript点击。

pen = driver.find_element_by_xpath("//span[text()=‘Edit’]")
driver.execute_script("arguments[0].scrollIntoView();",pen)
driver.execute_script("arguments[0].click();",pen)

上方将滚动到元素并单击它。

【讨论】:

  • 谢谢拉胡尔,页面底部有一个 cookie 弹出窗口,所以我无法点击欲望按钮,我处理了,一切正常
猜你喜欢
  • 2018-08-09
  • 2020-02-13
  • 1970-01-01
  • 2018-12-15
  • 2021-11-09
  • 2021-05-03
  • 1970-01-01
  • 2021-08-10
  • 2019-12-14
相关资源
最近更新 更多