selenium+docker 遇到的问题

镜像3个   分别是   selenium/hub,selenium/node-firefox,selenium/node-chorme

出现错误:from unknown error: cannot determine loading status from tab crashed   (Session info: headless chrom

解决方法:删除chrome 容器,重新创建 并且加入 内存大小先选个   -m 2G    我的是docker run -P -d --link hub:hub -m 2G --name chrome selenium/node-chrome

三个创建命分别是 

docker run –p 5555:4444 –d –name hub selenium/hub

docker run -P -d --link hub:hub --name firefox selenium/node-firefox

docker run -P -d --link hub:hub -m 2G --name chrome selenium/node-chrome

如果提示找不到元素

解决办法,下面包括如何添加选项无头模式,显示等待。

from selenium import webdriver
from time import sleep
from selenium.webdriver import ChromeOptions
from selenium.webdriver.support.ui import WebDriverWait
chrome_options =  ChromeOptions()
chrome_options.add_argument("--headless")
#chrome_options.add_argument('--disable-extensions')                                                                                                                                  
chrome_options.add_argument("--no-sandbox")
driver = webdriver.Remote(
command_executor='http://127.0.0.1:5555/wd/hub',
desired_capabilities={'browserName': 'chrome'},options=chrome_options
)
try:
    driver.get('https://www.baidu.com')
    print("get baidu")
    sleep(2)
    element = WebDriverWait(driver,5).until(lambda x:x.find_element_by_id("kw"))
    element.send_keys("aaaa")
    #sleep(2)
    driver.find_element_by_id("su").click()

    sleep(1)

    driver.get_screenshot_as_file("/root/Videos/baidu_img.png")

finally:
    driver.quit() 


print("end...")

 

posted @ 2020-03-07 14:56  C,python,linux,java  阅读(686)  评论(0编辑  收藏  举报