我有一个用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'
目前没有回答
相关问题 更多 >
编程相关推荐