前言:
当前兄弟们对“元素定位css中class属性”大约比较着重,小伙伴们都需要学习一些“元素定位css中class属性”的相关文章。那么小编同时在网摘上搜集了一些对于“元素定位css中class属性””的相关内容,希望各位老铁们能喜欢,各位老铁们快快来了解一下吧!无论是做UI自动化测试,还是爬虫,页面元素定位始终都是我们必须要做的工作,Selenium WebDriver API 中提供了大量的方法帮助我们进行元素定位,有许多方法对页面的元素进行定位,可以根据自己的需要选择最合适的一种。selenium提供了8种元素定位的方法。
在前端的单个页面中,通过id定位是万无一失的,因为id值是唯一的。但是,并不是每个元素都有id属性,所以我们可以通过其他元素进行元素定位。
今天要说的就是元素定位方法之一:class定位。
一、简单class定位
如果一个属性有class值,我们要定位该元素可能方式是多样的
1. 首先想到可以根据class name进行定位。
代码如下:
driver.find_element(By.CLASS_NAME, “s_ipt”)
2. 同时也可以根据xpath定位:
代码如下:
driver.find_element(By.XPATH, ‘//input[@s_ipt=’s_ipt’”)
3. 第三种方法根据css selector定位:
代码如下:
driver.find_element(By.CSS_SELECTOR, “.s_ipt”)二、复合class定位
如上图span元素,class值比较长,关键中间有空格,这种称之为复合class。
定位元素的时候方式如下
1. 根据class name进行定位时,每次只能选取其中一个name值定位。
代码如下:
driver.find_element(By.CLASS_NAME, “s_btn_wr”)或者driver.find_element(By.CLASS_NAME, “bg”)
2. 可以根据xpath定位,直接做字符串匹配与前边相同:
代码如下:
driver.find_element(By.XPATH, ‘//input[@s_ipt=’bg s_ipt’”)
3. 第三种方法根据css selector定位:
代码如下:
driver.find_element(By.CSS_SELECTOR, “.bg.s_ipt”) # 即查找class name为bg和s_ipt的元素driver.find_element(By.CSS_SELECTOR, “.s_ipt”) # 查找class name为s_ipt的元素
举个例子,拿百度首页的源码给大家说明一下,在页面源码文件,定位到元素后,右键,效果如下:
生成代码后复制,针对这个场景可以直接拿来用,但基于现在的网页更新都很频繁,建议还是要简单学习下xpath、css selector等方法,毕竟这些是比较重要的,那样就可以写出相对灵活的代码,在日常很有帮助,对页面一些的细小的调整会有更强的适应性。
综上所述,并不是所有的元素根据class值进行定位时,直接把值复制过来匹配即可,在不同的定位方式中其书写是不同的,同时有简单和复合class的区分。
标签: #元素定位css中class属性