【问题标题】:iCloud Website - NoSuchElementException: Unable to Locate ElementiCloud 网站 - NoSuchElementException:无法找到元素
【发布时间】:2017-06-14 20:08:51
【问题描述】:

我是 Python 新手,我正在尝试制作一个程序,让我使用 Selenium 登录 Gmail 和 iCloud。我已经完成了 Gmail 部分,所以我知道我并没有完全偏离轨道,但我似乎无法克服尝试在 iCloud 网站上查找登录名/密码字段时发生的错误。我不断得到:

NoSuchElementException:消息:没有这样的元素:无法定位 元素:{"method":"xpath","selector":"//*[@id="appleId"]"}

我尝试使用WebDriverWait,我已经等待了大约 30 秒,只是为了看看时间是否是问题所在,但即使我尝试找到登录/密码字段,我仍然会收到同样的错误使用 Xpath、ID 名称、CSS 选择器等。

【问题讨论】:

    标签: python html selenium xpath


    【解决方案1】:

    它在 iframe 中,因此您需要将 Selenium 切换到它。

    driver.switch_to.frame('auth-frame')

    一旦你这样做了,你应该能够通过 id 或 xpath 找到它。

    【讨论】:

    • 谢谢,但现在我没有收到这样的帧异常?
    • 它在 icloud.com 上适用于我,如果您在不同的页面上,iframe 的 id 可能会不同。或者 Selenium 可能会在 iframe 存在之前寻找它。
    • 你说得对,我只是忘了等。我现在让它等待直到框架可用,但是我不得不再次等待登录字段可用,所以我将它设置为任意等待时间。我试图让它等到它出现,但由于某种原因不起作用(即 login = WebDriverWait(browser, 10).until(EC.presence_of_element_located(By.XPATH, 'loginXPath')))。 ..我不断收到 __init___() 采用 2 个位置参数但给出了 3 个的错误。但这是我在互联网上看到的方式,所以我应该在里面放什么元素?
    • 没关系,额外的一对括号解决了这个问题。谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-02-20
    • 2021-08-15
    • 2020-11-27
    • 1970-01-01
    • 2022-06-23
    • 2017-07-30
    • 2017-09-15
    相关资源
    最近更新 更多