我正在本地计算机上运行Django项目,这是OSX。我想将我的站点部署到Ubuntu服务器,但我遇到了问题。在我的本地计算机上无故障运行的同一段代码在Ubuntu服务器上不起作用。这是一段代码:
browser.get("https://degreeworks.cuny.edu/cuny_redirector.cgi")
browser.switch_to_frame('frBody')
try:
step[clientId] = "Loading your Degree Audit"
element = WebDriverWait(browser, 20).until(
EC.presence_of_element_located((By.CLASS_NAME, 'SchoolName')))
except:
browser.quit()
return {'error': 'could not load DegreeWorks'}
在OSX上,Selenium最终会找到具有类' SchoolName'的元素。并继续该功能。在Ubuntu上,相同版本的Selenium(3.0.2)和相同版本的PhantomJS(2.1.1)无法找到该元素。
我在两者上打印browser.page_source
,结果有趣的不同。
在加载AJAX页面时,两者都具有相同的html源。
但是,一旦AJAX加载了页面的XML,在OSX上只输出
<?xml version="1.0" encoding="ISO-8859-1" standalone="no"?><?xml-stylesheet type="text/xsl" href="DGW_Report.xsl" ?>
而在Ubuntu上它输出了AND实际的XML内容。我认为在OSX上,XML被转换为HTML(就像它在浏览器上发生的那样)并且找到了元素,但是在Ubuntu上它只是继续打印XML。
有人知道为什么会这样,以及是否有办法解决这个问题?非常感谢你。