访问客户端计算机上的远程浏览器

2024-04-19 06:34:16 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个用flask构建的门户,通过它selenium可以初始化并在chrome浏览器中打开给定的web应用程序。这里,selenium是从python代码运行的,以访问浏览器

我在部署应用程序时遇到了问题。 我已经在虚拟机上部署了门户。一切都很完美。 但当我尝试使用虚拟机ip地址从另一台机器访问门户时,门户正在呈现,但chrome浏览器正在用户(客户端)机器的虚拟机虚拟机istead上打开。这应该是客户端可以访问的,但这并不像预期的那样发生

有人能帮我解决这个问题吗。请在下面查找代码

def run_selenium(passed_url):
    browser = request.user_agent.browser
    version = request.user_agent.version and int(request.user_agent.version.split('.')[0])
    platform = request.user_agent.platform
    uas = request.user_agent.string

    if 'OPR' in uas:
        browser = 'Opera'
        driver = webdriver.Opera()
    elif browser == 'chrome':
        browser = 'Chrome'

    #location of chromedriver needed for running seenium on chrome browser. chromedriver is uploaded to github repo
        driver = webdriver.Chrome(conf.CHROME_DRIVER_PATH[0])
    elif browser == 'firefox':
        browser == 'Firefox'
        driver = webdriver.Firefox() 

    driver.get(passed_url) #passing url taken from form
    head_element = WebDriverWait(driver, 30).until(lambda driver: driver.find_element_by_tag_name('head')) # waiting for page to atleast load <head> element fully so script could be injected
    if head_element:
        print ("injecting script")

        # rawgit.com MaxCDN service used.. js file is at github repo annoletjs/master
        driver.execute_script("!function(){function e(){script=document.createElement('script'),script.type='text/javascript',script.src='//rawgit.com/SSS-Studio-development/annoletjs/tagging/annolet_main.js',document.getElementsByTagName('head')[0].appendChild(script)}($=window.jQuery)?e():(script=document.createElement('script'),script.src='//ajax.googleapis.com/ajax/libs/jquery/1.7/jquery.min.js',script.onload=e,document.getElementsByTagName('head')[0].appendChild(script))}();")
        print ("injected")
    return 'annotate'

Tags: browserurl门户versionrequestdriverseleniumscript