【问题标题】:Not able to locate element, not iframe or page load [duplicate]无法定位元素,不是 iframe 或页面加载 [重复]
【发布时间】:2019-04-28 21:38:48
【问题描述】:

我正在尝试自动化 shopify 结帐的结帐过程,而 selenium 似乎找不到完成结帐所需的元素。注意:此结帐不在 iframe 中,我进行了广泛的研究以确保页面已完全加载,因此这不是重复的问题。

try:
    elem = driver.find_element_by_id('number')
    elem.send_keys('4342923222931029')
except NoSuchElementException:
    assert 0, "can't find input with number id"

这是我要访问的内容:screenshot of the source code of the checkout code

【问题讨论】:

  • 欢迎来到 SO。您是否尝试过开发者工具中的#number css 或//input[@id='number'](如果您使用的是chrome)?你能在 chrome 浏览器中找到该元素吗?
  • 这里是在浏览器中查找元素的选项链接 (stackoverflow.com/questions/55870609/…)。通过这种方式,我们可以确定问题出在硒还是标识本身。
  • @supputuri 非常感谢您的帮助,所以事实证明这是一个 iframe 问题。我现在找到了 iframe,但是在尝试通过 id 定位 iframe 时出现以下错误:selenium.common.exceptions.NoSuchFrameException: Message: no such frame
  • @supputuri 这是我的代码:driver.switch_to.frame('card-fields-number-3nk14ojvg9f00000')
  • 查看我的回答 here 循环遍历所有可用的 iframe 以找出哪个框架具有该元素的元素。

标签: python selenium


【解决方案1】:

这是切换到正确帧的python代码。

ele = driver.find_element_by_xpath("//iframe[contains(id, 'card-fields-number')]")
driver.switch_to.frame(ele);

Java 解决方案请参考here

【讨论】:

    猜你喜欢
    • 2011-03-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-03
    • 2014-05-23
    • 2012-12-24
    • 1970-01-01
    • 2016-03-06
    相关资源
    最近更新 更多