2017-04-04 171 views
0

我是新来的硒。我有这样的情况,我不知道如何解决它:Python Selenium:使用driver.find_elements获取不同的结果

  • 如果我在driver.get()使用直接的联系我能找到和使用W /计数元素O问题:
    • element.driver.find_elements_by_xpath();
    • print(len(element))

我得到正确的打印结果

  • 如果我使用的主页,而不是在driver.get()
    • 定位搜索按钮;
    • 发送密钥并提交;
    • element.driver.find_elements_by_xpath();
    • print(len(element))

测试通过,但result is 0。任何想法我做错了什么?

+0

这是计时问题,它甚至在元素加载到DOM之前尝试计数,我强烈建议您使用WATIR(包含Ruby selenium绑定),因为您是初学者,在WATIR中,所有等待条件自动成为处理。它在与元素进行交互之前检查了四个条件(存在?可见?启用?可写?)因此,您不必自己做任何事情,如果直接使用硒绑定,这些检查将不可用。 WATIR是围绕硒包装提供这些检查,并且还为您提供避免写入xpath的功能。 – RAJ

回答

0

您需要等待操作后再验证。 Web驱动程序提供“等待条件”,您可以在执行其他验证操作之前使用它来验证您是否达到了所需的检查点。

我们不是在讨论系统等待,我们正在讨论等待条件,在这种情况下,驱动程序可以轮询浏览器,直到满足给定的条件。有许多条件和许多选项,你需要相当普遍的实现你的目标。这就是为什么我没有提供一个例子。

+0

感谢您的回答。我知道等待。事实上,我正在使用一个错误的等待条件,并没有得到结果。刚才我使用了EC.presence_of_all_elements_located,并得到了我的结果! – Vadim

+0

很高兴解决了! –