Docker 環(huán)境: Docker Container、ubuntu:18.10、geckodriver-v0.23.0-linux64、selenium-3.14.1本地環(huán)境: Mac OSX、geckodriver-v0.23.0-linux64、selenium-3.14.1為什么在我的 Mac 本地執(zhí)行 JS 可以正常工作,但在 Docker 容器中卻不能?在 nfl.com 上觸發(fā)錯誤的 Python 函數(shù):def scroll_down(driver, value): """ Scroll down some """ driver.execute_script("window.scrollBy(0,"+str(value)+")")來自 nfl.com 的追溯Traceback (most recent call last): File "/app/foo/foo.py", line 159, in <module> main() File "/app/foo/foo.py", line 150, in main detect_full_html_loaded(driver) File "/app/foo/foo.py", line 55, in detect_full_html_loaded scroll_down(driver, 1000) File "/app/foo/foo.py", line 45, in scroll_down driver.execute_script("window.scrollBy(0,"+str(value)+")") File "/usr/local/lib/python3.6/dist-packages/selenium/webdriver/remote/webdriver.py", line 636, in execute_script 'args': converted_args})['value'] File "/usr/local/lib/python3.6/dist-packages/selenium/webdriver/remote/webdriver.py", line 321, in execute self.error_handler.check_response(response) File "/usr/local/lib/python3.6/dist-packages/selenium/webdriver/remote/errorhandler.py", line 242, in check_response raise exception_class(message, screen, stacktrace)selenium.common.exceptions.WebDriverException: Message: Failed to decode response from marionette在 nytimes.com 和 sony.com 上觸發(fā)錯誤的 Python 函數(shù):def capture_screenshot(assets_dir, url, sleep, driver): """ Take simple screenshot of above-the-fold """ driver.get(url) time.sleep(sleep) driver.set_window_size(1400, 700) Image.open(BytesIO(driver.get_screenshot_as_png())).save(os.path.join(assets_dir,'screenshot.png')) print('Created: "' + assets_dir + 'screenshot.png' + '"')同樣,這在本地工作正常。
1 回答

慕絲7291255
TA貢獻1859條經(jīng)驗 獲得超6個贊
這是一個與@Andersson 建議的資源相關(guān)的問題。在 docker-compose.yml 中添加適當?shù)?shm_size 修復了 Chrome 和 Firefox Gecko 網(wǎng)絡驅(qū)動程序中的問題。
https://docs.docker.com/compose/compose-file/#shm_size
添加回答
舉報
0/150
提交
取消