我是selenium webdriver的新手。 我写了一个单元测试脚本并在2台不同的Windows 10机器上运行它。 在第一台机器上,代码运行没有任何错误。 当我在第二台机器上运行代码时,代码被执行,我可以看到所有测试都通过了,但我仍然收到以下错误: “试图在没有建立连接的情况下运行命令”
这是什么原因,我该如何解决这个问题? THX
答案 0 :(得分:0)
我可以在针线盒外自由说话吗?对于Selenium,我建议使用Linux(因为您可以crontab -e
使用以下脚本),Google Chrome和chromedriver。它非常好用,特别是如果您要测量加载时间。 PhantomJS有时会关闭,并且不会进一步开发IIRC。这是我未经测试的示例:
# -*- coding: utf-8 -*-
import datetime
import os
# from pushbullet import Pushbullet
import pytz
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
# api_key = '<BLAHBLAHBLAH>'
# pb = Pushbullet(api_key)
d = pytz.timezone('Europe/Berlin').localize(datetime.datetime.now().replace(microsecond=0)).isoformat()
ok = True
ttfb = -1
chrome_options = Options()
chrome_options.add_argument('--headless')
chrome_options.add_argument('--no-sandbox')
chrome_options.binary_location = r'<PATH_TO_CHROME>'
webdriver = webdriver.Chrome(executable_path=r'<PATH_TO_CHROMEDRIVER>', chrome_options=chrome_options)
try:
webdriver.get('https://www.example.com/')
print(webdriver.execute_script('return performance'))
ttfb = webdriver.execute_script('return (performance.timing.responseStart - performance.timing.navigationStart)')
assert 'Example' in webdriver.find_element_by_css_selector("BODY").text
except (KeyboardInterrupt, MemoryError, SyntaxError, SystemExit):
raise
except Exception as e:
ok = False
# push = pb.push_note('Something went wrong.', '<BLAHBLAH>' + '\n\Date: ' + d, channel=pb.get_channel('channel-has-to-be-created'))
try:
webdriver.quit()
except (KeyboardInterrupt, MemoryError, SyntaxError, SystemExit):
raise
except Exception as e:
pass
print(d)
print(ok)
print(ttfb)
如果不清楚,请询问。这是否能帮助您解决Windows问题取决于您,但是也许您和其他人可以比较他们的代码并得出新的结论。玩得开心。