所以我一直在研究selenium的一些自动化,并决定加入一个循环来检查存储在数组中的参与方列表。for循环搜索参与方并单击显示参与方信息的元素,然后返回到搜索栏并再次循环。在
在第一次迭代中,一切都按预期工作。但我的问题是在第二次迭代中,我无法找到在搜索成功后单击该元素的元素。我想这可能与Iframe有关,但我不相信。也许我的代码有一些我不知道的错误,但是您的帮助将不胜感激:)
不介意sleep函数,我只是暂时使用它(在所有功能正常后将切换为显式等待)
为了提供更多的信息:如果我在数组的任何索引处启动循环,第一个循环总是成功的,这意味着按标题查找元素对每个参与方都有效。在
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)
预期:搜索成功->;能够单击元素以显示参与方状态->;返回主屏幕->;重复
实际结果:搜索成功->;找不到元素(在第二次迭代中)
目前没有回答
相关问题 更多 >
编程相关推荐