因此,我一直在使用硒进行一些自动化工作,并决定抛出一个循环以遍历存储在数组中的参与方列表。 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)
预期:搜索成功->可以单击元素以显示聚会状态->返回主屏幕->重复
实际结果:搜索成功->无法找到元素(在第二次迭代中)