当前位置: 首页 > 面试题库 >

Python Selenium driver.implicitly_wait(30)

申思远
2023-03-14
问题内容

我们正在使用VM进行开发,并使用Jenkins作为套件。今天早上,我们遇到了从未发生过的硒测试问题。在粘贴代码之前,重要的是要知道硒测试在我的机器上可以运行,但在Jenkins上无法运行。(而且已经运行了一个月)

class Remote(unittest.TestCase):
    def setUp(self):
        self.driver = webdriver.Firefox()
        self.driver.implicitly_wait(30)
        self.base_url = "https://developer.intuit.com/"
        self.verificationErrors = []
        self.accept_next_alert = True

这是导致此错误的代码:

ERROR: test_sl_front (__main__.SlFront)

Traceback (most recent call last):
  File "./scripts/test-sl/sl-front.py", line 160, in setUp
    self.driver.implicitly_wait(30)
  File "/var/lib/jenkins/.local/lib/python2.7/site-packages/selenium/webdriver/remote/webdriver.py", line 778, in implicitly_wait
    'implicit': int(float(time_to_wait) * 1000)})
  File "/var/lib/jenkins/.local/lib/python2.7/site-packages/selenium/webdriver/remote/webdriver.py", line 308, in execute
    self.error_handler.check_response(response)
  File "/var/lib/jenkins/.local/lib/python2.7/site-packages/selenium/webdriver/remote/errorhandler.py", line 194, in check_response
    raise exception_class(message, screen, stacktrace)
WebDriverException: Message: timeouts

这很奇怪,因为昨天和前一天一切正常。我试图删除“ .Firefox()”,以为它可能与问题有关,但是没有任何变化。

此问题是由使用了几个月的“
self.driver.implicitly_wait(30)”引起的。在Jenkin的构建过程中,我们使用以下命令行启动此测试。

export DISPLAY=:99
python ./scripts/test-sl/sl-front.py

问题答案:

我在使用geckodriver
0.19.0的新版本时遇到了相同的问题webdriver.Firefox()driver.implicitly_wait(IMPLICIT_WAIT)并通过安装新版本的geckodriver解决了它(我之前是2017年6月的版本)。

从此处下载geckodriver:https :
//github.com/mozilla/geckodriver/releases。

我的配置:

  • Firefox 56.0
  • 硒版本:3.4.3

检查shell中的geckodriver版本:

$ geckodriver -V
geckodriver 0.19.0

默认情况下,硒将使用您路径中的Firefox版本。要更改为另一个版本,请使用:

from selenium.webdriver.firefox.firefox_binary import FirefoxBinary

binary = FirefoxBinary(firefox_path='your firefox path', log_file='your logfile path')
driver = webdriver.Firefox(firefox_binary=binary)

硒WebDriver的文档



 类似资料:
  • 问题内容: 我已经安装了最后一个JDK 8(b116),但是我注意到我不能使用类型注释。例如,如果我编写以下内容,请阅读Java教程: 要么 编译器给我以下错误: 现在可以了。 在使用类型注释之前,我们必须使用注释注释。请看下面的评论! 我也不知道JDK中是否会插入诸如,等的注释,或者是否必须下载Checker Framework 问题答案: 您已经自己回答了问题的第一部分。 对于第二部分: 我也

  • 问题内容: 我有一个具有很多用JSR-303验证注释注释的字段的bean。现在有一个新的要求,其中一个字段是强制性的,但仅在某些条件下才是强制性的。 我环顾四周,找到了我需要的验证组。 这就是我现在所拥有的: 但是,当我在单元测试中运行此验证时: 事实证明,所有非组批注的验证都将被忽略,而我仅收到1次违规。 我可以理解这种行为,但是我想知道是否有一种方法可以使该组也包括所有未注释的参数。如果没有,

  • 本文向大家介绍现在我们要设计一个30-40岁的网络社区,请你讲一讲你的设计思路。相关面试题,主要包含被问及现在我们要设计一个30-40岁的网络社区,请你讲一讲你的设计思路。时的应答技巧和注意事项,需要的朋友参考一下 首先分析这部分人群的特点: 1.30岁以上,一般已经结婚生子,但是孩子年龄也不会太大,十多岁的样子。 2.事业已经进入稳定期,可能手下有几个员工。但是又会有不少晋升养家的压力。 3.父

  • 本文向大家介绍一艘游轮从码头A出发后先逆流航行了1分钟;掉头顺流航行2分钟;再掉头逆流航行3分钟……以此类推。已知游轮顺流每分钟航行30米,逆流每分钟航行10米。问10分钟后游轮的位置和20分钟后油轮的位置相距多少米?相关面试题,主要包含被问及一艘游轮从码头A出发后先逆流航行了1分钟;掉头顺流航行2分钟;再掉头逆流航行3分钟……以此类推。已知游轮顺流每分钟航行30米,逆流每分钟航行10米。问10分

  • 问题内容: 我想用Java制作图像,然后在尺寸为150 x 100毫米的标签上的300dpi标签打印机上打印。如何制作图像,以便将线条(或任何种类的元素)准确地打印在位置(10,10)(以毫米为单位),并在位置(10,50)处结束? 换句话说:我的挑战不是如何制作一条线(我使用的是Graphics2D,bufferedImage),而是如何准确地知道该行在标签上的位置(以毫米为单位)。 有任何想法

  • 问题内容: 而在一般情况,是用于单位,和选项(“K”,“M”和“G”,或不太标准的可能性“K”,“m”或“G”)的二进制前缀倍数(即,功率1024),还是1000的幂? 手册说它们代表千字节(kB),兆字节(MB)和千兆字节(GB),表明它们具有原始SI系统中定义的1000的幂。我的非正式测试(我不太有信心)表明它们的确是千字节(kiB),兆字节(MiB)和千兆字节(GiB),所有幂都是1024。

  • 问题内容: 当我尝试调试Java应用程序时,IDE冻结约30秒,并显示以下消息:“已完成,正在保存缓存” 解冻后,一切正常。每次都会发生。 当我只运行(不调试)时,它不会冻结。 我试过的 我在系统上更改了JDK。 我更改了IntelliJ版本。 我改为IntelliJ Ultimate-试用版。 使IDE的缓存无效。 类似问题 我还发现给定的消息仅在代码的这一部分存在-github -projec

  • 问题内容: 我试图通过乘以毫秒来计算30天,但是结果持续出现,结果是days_30的值是负数,我不确定为什么。 任何建议,不胜感激! 代码片段: days_30值导致:-1702967296 聚苯乙烯 结果较小(但仍为负数)。-1.702967296E9 问题答案: 您正在相乘,并且发生溢出,因为最大整数为。只有在乘法之后,它才会转换为。将第一个数字转换为。 或使用文字: 从一开始,这将迫使数学运