Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/354.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Selenium:使用driver.find_元素获得不同的结果_Python_Selenium - Fatal编程技术网

Python Selenium:使用driver.find_元素获得不同的结果

Python Selenium:使用driver.find_元素获得不同的结果,python,selenium,Python,Selenium,我是硒的新手。我有这种情况,我不知道如何解决: 如果我在driver.get()中使用直接链接,我可以使用以下方法查找和计算不存在问题的元素: element.driver.find_elements_by_xpath() 打印(len(元素)) 我得到了正确的打印结果 如果我在driver.get()中使用主页: 找到搜索按钮 发送密钥并提交 element.driver.find_elements_by_xpath() 打印(len(元素)) 测试通过,但结果为0。知道我做错

我是硒的新手。我有这种情况,我不知道如何解决:

  • 如果我在
    driver.get()
    中使用直接链接,我可以使用以下方法查找和计算不存在问题的元素:
    • element.driver.find_elements_by_xpath()
    • 打印(len(元素))
我得到了正确的打印结果

  • 如果我在
    driver.get()
    中使用主页:
    • 找到搜索按钮
    • 发送密钥并提交
    • element.driver.find_elements_by_xpath()
    • 打印(len(元素))

测试通过,但
结果为0
。知道我做错了什么吗?

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


我们谈论的不是系统等待,而是等待条件,即驱动程序可以轮询浏览器,直到满足给定条件为止。有很多条件和选择,你需要它们来实现你的目标。这就是我不提供示例的原因。

谢谢您的回答。我知道等待。事实上,我使用了错误的等待条件,没有得到结果。刚才我使用了所有元素的EC.presence,得到了我的结果!这就是计时问题,它甚至在DOM中加载元素之前就试图计数,我强烈建议您使用WATIR(Ruby selenium binding的包装器),因为您是初学者,在WATIR中,所有等待条件都会自动处理。它在与元素交互之前检查四个条件(存在?可见?启用?可写?),因此您不必自己做任何事情,如果您直接使用selenium绑定,这些检查将不适用于您。作为selenium的包装器,WATIR提供了这些检查,还提供了避免编写xpath的函数。