当前位置: 首页 > news >正文

织梦做的网站后台怎么进p2p万能搜索种子

织梦做的网站后台怎么进,p2p万能搜索种子,云商城是合法的吗,昆山城市建设投资有限公司网站最近工作会用到selenium来自动化操作一些重复的工作,那么在用selenium写代码的过程中,又顺手整理了一些常用的操作,分享给大家。 常用元素定位方法 虽然有关selenium定位元素的方法有很多种,但是对于没有深入学习,尤…

最近工作会用到selenium来自动化操作一些重复的工作,那么在用selenium写代码的过程中,又顺手整理了一些常用的操作,分享给大家。

常用元素定位方法

虽然有关selenium定位元素的方法有很多种,但是对于没有深入学习,尤其是没有前端知识的朋友来说,常用的就那几招。

基于xpath和css

一般来说,我首选xpath,因为直接chrome右键就能直接复制路径

driver.find_element("xpath", "xxxxxx")

但是有时xpath是动态变化的,直接复制一下不顶用,所以第二选项是基于CSS

driver.find_element("css_selector", "xxxxxx")

你要问我两个都是直接复制粘贴,有手就行,为啥css排第二?因为大多数情况下,css样式的代码都是长长一坨,万一不顶用,删起来太麻烦了。

基于属性

如果上面懒人方法不管用,一般我会再尝试是否能找到一些唯一的属性来定位,这就要自己找到想定位的标签,观察其对应html属性,例如使用id

driver.find_element("id", "xxxxxx")

或者是class_name

driver.find_element("class_name", "xxxxxx")

不过这种方法,要求其属性值是唯一的,所以也不是万能的,如果这两种方法都没法让你顺利定位到页面元素,那可能就要花一点功夫去深入研究了。

输入本文

有时我们需要在输入框输入一些文本,例如账号密码或者SQL语句才能执行下一步操作,使用selenium也可以轻松完成。

如果输入框是使用ipput标签,那么就可以使用上面的定位元素方法定位到输入框,并使用send_keys来传入文本。

  driver.find_element("xpath", "xxxxxx").send_keys("xxxxxx")

但如果页面输入框,并不是<input>形式写的,更多的时候是一个富文本编辑器写在div里面,或者是套在iframe标签里面,这种情况都无法直接通过定位元素来传递文本,大多数情况需要先点击激活编辑器,然后再send_keys,例如下面的形式

 
  1. driver.find_element(By.CSS_SELECTOR, ".view-lines").click() #点击编辑器

  2. driver.find_element(By.CSS_SELECTOR, ".inputarea").send_keys("xxxxx")

但这种情况,编辑框都是动态加载的,在实际操作时需要灵活运用。

等待指定元素加载完毕

有时我们需要的页面内容需要先通过几步点击才能出现,自然而然就会想到先等几秒,再去操作,但如果对每个按钮都是强制等待一个固定的时间,程序就会显得笨笨的,selenium当然提供一个方法去让你告诉程序,等到某个元素一出来,就去执行后面的页面操作

 
  1.   from selenium.webdriver.support.ui import WebDriverWait

  2.   from selenium.webdriver.support import expected_conditions as EC

  3.   WebDriverWait(driver, 30).until(EC.element_to_be_clickable((By.CSS_SELECTOR, '.el-table__row'))).click()

上面的代码就是告诉程序,在30秒内等到含有'.el-table__row'这个样式的css元素出现,就去点击它,如果超过30秒就超时,后面可以是重试或者异常处理。

接管当前浏览器

最后一个实用的技巧,就是如果让selenium接管当前的浏览器。

如果你尝试写过selenium就会知道,每次执行程序,就会启动一个新的chrome进程,从头开始执行操作,所有登录过的cookie都没了,你需要全部重新操作一遍,这样就很麻烦。

又或者,你根本就不会破解登录,你的任务是可以自动化的,但是需要先进行登录,登录模块你又搞不定,难道就不能告诉selenium你就用我登录好的浏览器去执行代码吗?

答案是可以且操作简单的,我们只需要在命令行先使用下面的代码启动一个远程调试模式的chrome。

chrome.exe --remote-debugging-port=9222 --user-data-dir="C:/user/liuzaoqi/desktop"

这时会新增一个浏览器窗口,不要关闭他,之后在你的Python自动化调试代码开头添加如下内容

 
  1.  from selenium import webdriver

  2.   from selenium.webdriver.chrome.options import Options

  3.   chrome_options=Options()

  4.   chrome_options.add_experimental_option("debuggerAddress", "127.0.0.1:9222")

  5.   driver = webdriver.Chrome(chrome_options=chrome_options) # 启动浏览器

现在,selenium就接管了刚刚系统打开的浏览器,你的代码也将直接在浏览器当前打开的页面下执行,你完全可以先手动将你无法自动化的操作执行完毕,再去写其他的代码。

http://www.qdjiajiao.com/news/5600.html

相关文章:

  • 网站开发程序有哪些免费的seo优化
  • 好的摄影作品网站小小课堂seo自学网
  • 怎么查看网站用的php还是.net广州seo外包公司
  • 网站建网站建站专业公司杭州搜索引擎推广排名技术
  • 湖南省人民政府网南宁百度推广排名优化
  • 本溪食品 中企动力提供网站建设互联网网络推广
  • 高端网站建设kgu网络营销的seo是做什么的
  • 网站开发技术有什么知乎seo排名帝搜软件
  • 网站建设的相应技术虞城seo代理地址
  • wordpress访问加速seo关键词排名在线查询
  • 移动手机网站开发百度快速seo软件
  • 网站模板 整站源码网站发布与推广
  • 网站seo诊断百度app下载官方免费下载安装
  • 网站源码是用什么做的营销模式
  • 网站创建费用武汉网络推广优化
  • 潍坊精神文明建设网站免费观看短视频的app软件推荐
  • 蒲城网站建设典型的网络营销案例
  • 政务公开政府网站建设管理天津网站快速排名提升
  • 域名申请后没有做网站推广营销软件
  • 河北城乡和住房建设厅官方网站百度刷排名优化软件
  • cad dwt模板做网站模版温州seo结算
  • 视频网址制作教程做百度seo
  • 家装设计网站开发淘宝网站的推广与优化
  • 苏州营销型网站建设方法google play下载官方版
  • 武汉网站开发公司百度seo搜索排名
  • zencart 一个产品网站下单关键词歌词
  • 网站项目需求表网络营销的招聘信息
  • 网站建设空间和服务器方式百度客服怎么联系
  • 吐鲁番市网站建设广州网站推广联盟
  • 云南省新农村建设网站域名注册信息查询whois