selenium执行js中自定义方法报错
主页面源码:
js代码:
python代码:
def getimg(): options = webdriver.ChromeOptions()
options.add_argument('--headless') #不用打开图形界面
options.add_argument('--dns-prefetch-disable')
options.add_argument('--no-referrers')
options.add_argument('--disable-dev-shm-usage') #大量渲染时候写入/tmp而非/dev/shm
options.add_argument('--disable-gpu')
options.add_argument('--single-process')
options.add_argument('--disable-audio')
options.add_argument('--no-sandbox') #让 chrome 在 root 权限下运行
options.add_argument('--ignore-certificate-errors')
options.add_argument('--allow-insecure-localhost')
options.binary_location = r"/usr/bin/google-chrome" #手动指定使用的浏览器位置
mobile_emulation = {
"deviceMetrics": { "width": 415, "height": 415, "pixelRatio": 1.0 },
"userAgent": "Mozilla/5.0 (Linux; Android 4.2.1; en-us; Nexus 5 Build/JOP40D) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Mobile Safari/535.19"
}
options.add_experimental_option("mobileEmulation", mobile_emulation)
driver = webdriver.Chrome(options=options)
driver.get(
'https://xxx.xxx.xx.cn/xx/xx/trend?fuxxde=' + sys.argv[1])
time.sleep(8)
img = driver.execute_script("return getCanvasUrl()")
print(img)
driver.close()
当通过 selenium 在 driver.execute_script() 中执行 getCanvasUrl() 时,提示:
selenium.common.exceptions.JavascriptException: Message: javascript error: getCanvasUrl is not defined
麻烦哪位大神解答下,求指教。
回答:
sleep时间长一点看看呢?
首先确保代码执行到了,可以把图形话界面打开或者调用截图,看下是不是不兼容。
执行没有问题慢的话你可以在写入方法的时候注入一个隐藏的元素,然后等待这个元素显示等待获取到后再执行js
以上是 selenium执行js中自定义方法报错 的全部内容, 来源链接: utcz.com/p/938017.html