首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何查看在条件下加载失败的页面?(硒。( Python)

如何查看在条件下加载失败的页面?(硒。( Python)
EN

Stack Overflow用户
提问于 2017-04-16 20:25:35
回答 2查看 2.5K关注 0票数 2

这是我的密码。在Try中,我正在检查特定的文本是否出现在加载中,如果是这样的话,将进一步处理。如果我正确理解,我的代码在每次加载时显式地等待10秒,然后等待另一个15,直到满足条件?

问题是,在页面内容加载失败并抛出异常后,如何查看它?我想知道为什么会发生这种情况,页面上有什么,或者遗漏了什么。现在,我无条件地重新加载相同的页面,但是由于它是重新加载的,所以抛出异常的不是同一个页面。有办法从try查看原始页面吗?

时间循环只是为了检查它是如何进行的。

我还试图将失败的url添加到我迭代过的列表中。我认为这是一种糟糕的做法。但是,它能造成什么危害,最好的解决办法是什么?

代码语言:javascript
运行
复制
 driver = webdriver.PhantomJS(executable_path=r'C:\Python3\selenium\webdriver\phantomjs-2.1.1-windows\bin\phantomjs.exe',service_log_path=os.path.devnull)

while count < 20:
    for line in q:


        driver.get(line)
        try:
            WebDriverWait(driver, 40).until(EC.text_to_be_present_in_element((By.ID, 'searchProgressText'), 'Search complete'))

            text=driver.find_element_by_class_name("sortbar").text.encode().decode('ascii','ignore')

            start = text.find('Cheapest')
            stop = text.find('Best')
            date = (line[line.find('SDP0')+5:line.find('&AD')].split('&'))
            date = date[0]+ ' - ' + date[3][5:]
            dest = (' - ').join(line[line.find('SO0')+4:line.find('&SDP0')].split('&SD0='))
            print()
            print('count=', count)
            print(line)
            print(date)
            print(dest)
            print(text[start:stop])
            count+=1

        except:
            print()
            print('******')
            print('******')
            print("Failure", fcount, line)
            fcount+=1
        text=driver.find_element_by_id("searchProgressText").text.encode().decode('ascii','ignore')

        print(text)

        print('******')
        print('******')
        print()




        time.sleep(2)
driver.close()

这个特定的行需要太长时间才能加载。从1.5秒到7秒。大多数情况下都是3秒。

代码语言:javascript
运行
复制
driver.get(line)

这样可以吗?我如何影响装载时间?

EN

Stack Overflow用户

发布于 2017-04-16 21:32:47

如果我正确理解,我的代码在每次加载时显式地等待10秒,然后等待另一个15,直到满足条件?

这并不完全正确。隐式设置在driver上,并应用于该driver实例的生命周期。在你设置它的时候,它实际上什么也不做。您可以阅读医生们来了解更多内容,但是每次尝试查找元素时,它基本上只能等待10s,而且它不是立即可用的。

您使用的是隐式和显式等待,每个医生们都不应该这样做。

警告:不要混合隐式和显式等待。这样做会导致不可预测的等待时间。

您应该删除隐式等待,并根据需要只使用显式等待(WebDriverWait)。

若要在页面内容加载失败后查看其内容,except中的代码是在未找到预期元素时运行的。您需要将您的代码放在页面上,以找到页面上的内容。你没有详细说明你想要什么,所以你可以拍摄一个截图,把某个元素中的HTML转储到日志中,等等,这取决于你想要的是什么。

票数 1
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43441792

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档