当前位置: 首页 > 知识库问答 >
问题:

不可互连元素硒[复制品]

宦高岑
2023-03-14

我试图在耐克网店上结账,但我尝试了所有的东西,搜索了,但找不到答案。

driver.find_element_by_xpath('//button[@id="qa-guest-checkout-mobile"]').click()

<button id="qa-guest-checkout-mobile" aria-label="Guest Checkout" 
class="ncss-btn-accent u-rounded u-full-width ncss-brand u-uppercase pt3-sm pt2-lg pr5-sm pb3-sm pb2-lg pl5-sm fs14-sm d-lg-h">
<span class="d-sm-ib va-sm-m mr1-sm">Afrekenen als bezoeker</span></button>

我尝试使用通过id、css等查找,但它不起作用。我在这里做错了什么?当我打印元素时,我只得到一个元素,然后我不会得到一个错误。

  File "C:\Users\X\OneDrive\Desktop\SN\NA.py", line 23, in <module>
    test = driver.find_element_by_xpath('//button[@id="qa-guest-checkout-mobile"]').click()
  File "C:\Users\X\AppData\Local\Programs\Python\Python37-32\lib\site-packages\selenium\webdriver\remote\webelement.py", line 80, in click
    self._execute(Command.CLICK_ELEMENT)
  File "C:\Users\X\AppData\Local\Programs\Python\Python37-32\lib\site-packages\selenium\webdriver\remote\webelement.py", line 633, in _execute
    return self._parent.execute(command, params)
  File "C:\Users\X\AppData\Local\Programs\Python\Python37-32\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 321, in execute
    self.error_handler.check_response(response)
  File "C:\Users\X\AppData\Local\Programs\Python\Python37-32\lib\site-packages\selenium\webdriver\remote\errorhandler.py", line 242, in check_response
    raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.ElementNotVisibleException: Message: element not interactable
  (Session info: chrome=74.0.3729.131)
  (Driver info: chromedriver=74.0.3729.6 (255758eccf3d244491b8a1317aa76e1ce10d57e9-refs/branch-heads/3729@{#29}),platform=Windows NT 10.0.17134 x86_64)

共有1个答案

和飞翔
2023-03-14

经过大量的搜索,我找到了这篇带有这个答案的帖子,并能够生成以下代码:

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

browser = webdriver.Chrome()
browser.get('https://www.nike.com/nl/nl/checkout/tunnel')
element = WebDriverWait(browser, 20).until(EC.presence_of_element_located((By.XPATH, "//div/button[@id='qa-guest-checkout-mobile']")))
browser.execute_script("arguments[0].click();", element)

它成功地单击了按钮。出于某种原因,您必须使用JavaScript强制单击该按钮...

 类似资料:
  • 需要:使用Selenium更新url上的字段&单击按钮(网页截图和HTML细节如下) 希望所面临的问题是明确的,等待指导。

  • 当用触发时,事件错误表示元素不可见

  • 我用的是C#硒。WebDriver.2.44.0在某个第三方网站上,我试图按下一个元素并得到这个: 我得到了元素,点击我得到了: 该项目是在一些子菜单显示后,我成功地按下父菜单。也放5秒睡眠保险点手风琴看的很清楚(在我眼里也是看的很清楚)。 问题 - 在第三方网站上,如何强制点击此项目?

  • 我正在使用Selenium记录我在网页上的操作,但是,当我运行测试用例时,出现了一个点击操作抛出错误:元素当前不可见,因此可能无法与之交互。但是,我确信按钮是可见的,下面是它的html: 此外,这是我的Selenium IDE测试脚本: 有人知道为什么吗?提前感谢!

  • 问题内容: 我的任务是编写一个解析器以单击网站上的一个按钮,但我只能单击其中一个按钮而遇到问题。以下代码适用于除一个按钮之外的所有按钮。 这是html:http: //pastebin.com/6dLF5ru8 这是源html:http: //pastebin.com/XhsedGLb python代码: 我收到此错误。 根据赛富尔,我刚刚尝试等待相同的元素不可见异常: 问题答案: 如果你看一下页