python中selenium控制浏览器尺寸

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python中selenium控制浏览器尺寸相关的知识,希望对你有一定的参考价值。

参考技术A 之前在自己电脑上写的代码测试运行非常完美,于是特别转移到了单独的一台笔记本上运行。

运行了几天之后发现有问题。selenium在抓取数据的时候莫名其妙的有一部分数据抓取不到。

分析代码呀什么的都没问题呀,奇了怪了。

三个td

前两个td里面的内容抓取的一点问题都没有,但是抓取第三个的时候就总是出错,用我自己的电脑测试就是好的。

我一度怀疑是不是我的笔记本电脑有什么驱动或者硬件导致的问题。

前两个能抓取到,shuliang抓取不到。如果我把shuliang里面的td[5]换成td[4]就是抓取他前面那一个元素,也是没问题的。但是我换成td[6]抓取他后面的元素就不行。

最后我发现有可能是selenium打开的chrome浏览器大小的问题,因为浏览器里面打开的页面正好只能显示到td[4],第5列显示不出来。

于是加一行代码

控制一下打开浏览器的大小,测试成功。shuliang成功抓取到了数据。

看来selenium真的是不是所见即所得的抓取模式,浏览器里面遮住的部分,他就抓不到了。

这可能也是很多selenium写好的代码换到别的电脑上执行就会出错的一个原因之一吧。

今天的分享记录就到这了。

selenium_webdriver(python)控制浏览器滚动条

调过JS脚本控制

 
  1. #coding=utf-8  
  2. from selenium import webdriver  
  3. import time  
  4. #访问百度  
  5. driver=webdriver.Firefox()  
  6. driver.get("http://www.baidu.com")  
  7. #搜索  
  8. driver.find_element_by_id("kw").send_keys("selenium")  
  9. driver.find_element_by_id("su").click()  
  10. time.sleep(3)  
  11. #将页面滚动条拖到底部  
  12. js="var q=document.documentElement.scrollTop=100000"  
  13. driver.execute_script(js)  
  14. time.sleep(3)  
  15. #将滚动条移动到页面的顶部  
  16. js="var q=document.documentElement.scrollTop=0"  
  17. driver.execute_script(js)  
  18. time.sleep(3)  
  19. #将页面滚动条移动到页面任意位置,改变等于号后的数值即可  
  20. js="var q=document.documentElement.scrollTop=50"  
  21. driver.execute_script(js)  
  22. time.sleep(999999)  
  23. ‘‘‘‘‘ 
  24. #若要对页面中的内嵌窗口中的滚动条进行操作,要先定位到该内嵌窗口,在进行滚动条操作 
  25. js="var q=document.getElementById(‘id‘).scrollTop=100000" 
  26. driver.execute_script(js) 
  27. time.sleep(3) 
  28. ‘‘‘  
  29. driver.quit() 

以上是关于python中selenium控制浏览器尺寸的主要内容,如果未能解决你的问题,请参考以下文章

python-web-selenium模拟控制浏览器

Python + Selenium常用控制方法

Python+Selenium自动化测试框架--控制浏览器(窗口大小后退前进)

python爬虫-28-基于python和Selenium,让你控制浏览器自动化操作

selenium_webdriver(python)控制浏览器滚动条

Selenium控制已打开的浏览器-python-edge