我在api上运行unittest,这是通过google标记管理器调用来注入下拉javascript文件的脚本标记。例如,gtm注入以下内容:
<script src="http://www.example.com/js/file.js"></script>
在文件file.js
中,执行javascript以处理访客信息并将其发送到我们的api。整个过程适用于网站访问者,但使用PhantomJS在Python Selenium中失败。查看页面源代码,我可以看到数据正确地从gtm中下拉,并且对我们的服务器发出file.js
请求,但内部代码从不执行。谁能指出我做错了什么?以下是我的代码摘录:
from selenium import webdriver
driver = webdriver.PhantomJS(service_args=['--ignore-ssl-errors=true'])
driver.set_window_size(1120, 550)
driver.get('https://www.example.com')
print(driver.page_source)
cookies = {item['name']: item for item in driver.get_cookies()}
print(cookies)
由于gtm在页面末尾加载,它们是否可能无法执行相关的javascript?
答案 0 :(得分:0)
原来javascript正在执行,但是它出错了,因为我试图通过Intl库获取时区,这在PhantomJS中本身不支持。我确定这是以下错误:driver.get_log('browser')
并检查输出。