selenium执行js中自定义方法报错

主页面源码:
selenium执行js中自定义方法报错
js代码:
selenium执行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

回到顶部