【问题标题】:Python Selenium cant locate iframe - gmail account generatorPython Selenium 无法定位 iframe - gmail 帐户生成器
【发布时间】:2021-08-14 03:30:35
【问题描述】:

我希望你们都感觉良好。我尝试编写“gmail 创建者”。 这个项目对我来说真的很重要,所以我会非常 如果有人可以帮助我,谢谢。如果你愿意,对于那个人 可以帮助我,如果这项工作将在贝宝上获得一些钱。 不多,但有一些钱。也对不起我的英语,我来自德国。 所以 : 我现在正在挣扎 4.5 小时。 它只是找不到元素“名字”。我通过正常方式尝试过: 驱动程序通过 xpath 找到元素并没有找到,还有 id 和很多东西。 然后我注意到,页面上有一个 iframe,所以我之前必须切换到它。 但现在它找不到这个 iframe。

信息: -Python -硒 -Chrome 网络驱动程序

网站: https://www.google.com/intl/de/gmail/about/#

代码:

def main():
    options = webdriver.ChromeOptions()
    options.add_argument("--window-size=950,1000")
    driver = webdriver.Chrome(options=options)
    driver.get("https://www.google.com/intl/de/gmail/about/#")
    time.sleep(randint(1, 3))
    #click create account
    while True:
        try:
            driver.find_element_by_xpath("/html/body/div[2]/div[1]/div[4]/ul[1]/li[3]/a").click()
            break
        except:
            yeet = 1
    #works all well till here
  
    #now I am struggling finding element, firstname element  
    #firstname_input = driver.find_element_by_xpath("/html/body/div[1]/div[1]/div[2]/div[1]/div[2]/div/div/div[2]/div/div[1]/div/form/span/section/div/div/div[1]/div[1]/div[1]/div/div[1]/div/div[1]/input")
    #iframe = driver.find_element_by_xpath("/html/body/iframe")
    #iframe = driver.find_element_by_tag_name("iframe")
    #driver.switch_to.frame(iframe)

    ###all didnt work  

main()

【问题讨论】:

  • 我在那里看不到firstname。我应该点击创建帐户按钮吗?
  • 转到该网站,然后点击“创建帐户”
  • 这就是我所做的。它为我打开了一个新窗口。你也是?
  • 是的,但是 selenium 找不到元素“名字”,就像我的意思是你输入名字的地方
  • 好的,我明白了。一秒给你答案

标签: python selenium iframe gmail element


【解决方案1】:

点击“创建帐户”按钮会打开一个新窗口。
所以,你必须切换到那个新窗口。
为此,您应该执行以下操作:

new_window = driver.window_handles[1]
driver.switch_to_window(new_window)

现在您可以访问“名字”元素以及那里的所有其他元素。
如果您希望最终回到第一个窗口,只需与上述类似:

initial_window = driver.window_handles[0]
driver.switch_to_window(initial_window)

另外,请不要使用像 "/html/body/div[2]/div[1]/div[4]/ul[1]/li[3]/a 这样的长绝对定位符。
“创建按钮”可以通过 //li/a[@data-action="create an account" and (contains(@class,'button'))] XPath 定位

【讨论】:

  • 是的,你是对的。即使页面上有一个元素不在其中的 iframe,也会打开一个新窗口。
  • 谢谢,我会尽力让你知道的:)
  • @C.Peck 好的,我检查了相关元素,而不是整个页面,你是对的
  • 它对我有用,谢谢,你可以给我你的贝宝:)
  • 好吧,这里不行,但如果你愿意,欢迎在 facebook facebook.com/profile.php?id=100011831197069 (real mensch) 上与我联系
猜你喜欢
  • 1970-01-01
  • 2022-10-22
  • 2020-03-13
  • 1970-01-01
  • 1970-01-01
  • 2016-02-05
  • 1970-01-01
  • 1970-01-01
  • 2017-11-23
相关资源
最近更新 更多