使用PhantomJS的Python selenium在Ubuntu上找不到元素

时间:2016-12-28 06:05:21

标签: python selenium ubuntu phantomjs

我正在本地计算机上运行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。

有人知道为什么会这样,以及是否有办法解决这个问题?非常感谢你。

0 个答案:

没有答案