Selenium,For循环:页面上没有特定元素时如何使循环持续下去

时间:2018-10-22 20:14:39

标签: python python-2.7 selenium

我有一个脚本,可以从页面中查找某些资源。但是,有时根本没有任何源,并且循环停止工作。我不知道如何解决这个问题,因为我已经指定了脚本应该在哪里寻找元素。

servers = browser.find_element_by_xpath('//*[@id="links- 
container"]/div[2]').find_elements_by_tag_name('tr')

如果没有源,则页面没有html对象,例如这些元素存在时。可以添加此作为例外。

no_elements = browser.find_element_by_xpath('/html/body/div[2]/div[2]/div[1]/div[3]/div[1]')

但是我真的不知道在哪里添加它。下面是我的代码片段。

srcs = []

servers = browser.find_element_by_xpath('//*[@id="links- 
container"]/div[2]').find_elements_by_tag_name('tr')
for server in servers:
try:

    txt = server.get_attribute('textContent').lower()

    link_type = txt.split()[2]

    if txt.find('test') >= 0:
        button = server.find_element_by_tag_name('a')
        browser.execute_script('arguments[0].click();', button)

        tm=0
        while(True):
            try:


                browser.switch_to.window(browser.window_handles[1])


                srcs.append(browser.find_element_by_xpath('/html/body/section/div/iframe').get_attribute('src') + "@" + link_type)

                browser.close()
                browser.switch_to.window(browser.window_handles[0])

                break
            except:
                if tm==5:break
                tm+=1

except Exception as e:
    print (str)(e)
    continue

因此,基本上,脚本正在寻找特定的链接并单击它,在新选项卡中打开,获取src并返回下一个。

感谢您的帮助。

0 个答案:

没有答案