DrawingVisual 类并没有提供异步绘制的方法,因为它是一个同步绘制对象。如果需要实现异步绘制,可以考虑使用其他的 WPF 绘图技术,例如:
1 在 BackgroundWorker 或 Task 中完成绘图任务,并在完成后将 DrawingVisual 对象添加到 UI 元素中。这种方法可以避免在 UI 线程中进行耗时的绘图 *** 作,提高应用程序的响应性能。
2 使用 CompositionTargetRendering 事件来间歇性地绘制 DrawingVisual 对象。这种方法可以在动态场景中实现连续的异步绘制,并且可以使用 GPU 加速以提高绘图性能。
3 使用 RenderTargetBitmap 对象来生成 DrawingVisual 的快照,并在后台线程中对图像进行处理。这种方法可以在后台线程中处理较长时间的绘图和图像处理任务,以避免阻塞 UI 线程。
综上所述,通过结合不同的绘图技术,可以实现 DrawingVisual 的异步绘制,并提高 WPF 应用程序的性能和响应性。
最近需要写一个爬虫,逻辑上有一个环节是取得一个页面的所有资源加载链接(html5页面)
(ps:python下的确是是有个第三方包叫Ghostpy可以取得,但是尝试后效果并不好,估计是因为Ghostpy的webkit对html5的支持并不好。)
选择用selenium,但是没找到selenium的webdriver下取得所有资源加载链接的方法。
selenium包下有一个selenium模块。查看源码时看到有个get_all_links方法。但是一直没找到这个模块的用法。
最后,求解答。谢谢大家。
方法不成的话,就自己do
it把:
all_links
=
browserfind_element_by_xpath('//a')
for
a
in
all_links:
agetAttribute('href')
有两个问题:
1 frame标签后面加冒号是标准的frame写法吗?不会是自定义的标签吧
<frame:groupmenu >
</frame>
2 我用的switch_to_frame(frameName) 没有问题
print '-------------------------switch to top frame'driverswitch_to_default_content()
driverswitch_to_frame('top')
print driverfind_element_by_id('top-btn')text
print 'switch_to_frame done'
print '-------------------------switch to left frame'
driverswitch_to_default_content()
driverswitch_to_frame('left')
print driverfind_element_by_id('left-btn')text
print 'switch_to_frame done'
print '-------------------------switch to main frame'
driverswitch_to_default_content()
driverswitch_to_frame('main')
>
PhantomJS 和 Chromedriver *** 作方式以及功能一致
主要区别 PhantomJS 无界面模式 节省内存
Chromedriver 完全模仿浏览器 消耗内存
PhantomJS 截取的是网页的完整页面,包括下拉进度条的内容
Chromedriver只截取d框浏览器的可视化内容页面
001 先找到文本输入框元素,输入内容
002 找到搜索按钮 进行搜索
给输入框赋值: elementsend_keys()
*** 作点击事件: elementclick()
find_element和find_elements的区别
带s的返回的是列表
不带s的是返回列表中的第一个元素
selenium处理cookie
页面等待 : >
以上就是关于drawingvisual如何异步绘制全部的内容,包括:drawingvisual如何异步绘制、如何用python的selenium提取页面所有资源加载的链接、PYTHON,SELENIUM如何获取HTML内元素,等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)