Selenium-无法在循环的第二次迭代中找到元素[Python]

时间:2019-04-29 17:22:43

标签: python selenium-webdriver automation

因此,我一直在使用硒进行一些自动化工作,并决定抛出一个循环以遍历存储在数组中的参与方列表。 for循环搜索参与者,然后单击显示参与者信息的元素,然后返回搜索栏并再次循环。

在第一次迭代期间,所有操作均按预期进行。但是我的问题是,在第二次迭代期间,搜索成功后,我无法找到要单击的元素。我想它可能与Iframe有关,但我不相信。也许我的代码中有一些我不知道的错误,但是您的帮助将不胜感激:)

不要介意睡眠功能,我只是暂时使用它(在所有功能正常工作后将切换为显式等待)

只是为了提供更多见解:如果我要在数组的任何索引处开始循环,则第一个循环将始终成功,这意味着按标题查找元素对每一方都适用。

for x in range(0, party_length):
    CRM_driver.find_element_by_xpath("(.//*[normalize-space(text()) and normalize-space(.)='Cases'])[1]/following::span[6]").click()
    CRM_driver.find_element_by_id("search").click()
    CRM_driver.find_element_by_id("search").clear()
    CRM_driver.find_element_by_id("search").send_keys(party[x].party_name)
    time.sleep(2)
    CRM_driver.find_element_by_xpath('//*[@id="findCriteriaButton"]').click()

    # Changes the iFrame to inspect CRM elements
    time.sleep(5)
    iFrame = CRM_driver.find_element_by_xpath('//*[@id="contentIFrame1"]')
    CRM_driver.switch_to.frame(iFrame)
    print(iFrame)

    CRM_driver.find_element_by_xpath('//*[@title = "' + party[x].party_name + '"]').click()

    #returns to default IFrame and main page
    CRM_driver.switch_to.default_content()
    CRM_driver.find_element_by_id('navTabLogoTextId').click()
    time.sleep(2)

预期:搜索成功->可以单击元素以显示聚会状态->返回主屏幕->重复

实际结果:搜索成功->无法找到元素(在第二次迭代中)

0 个答案:

没有答案