关于4.0
2018年的11月1号,selenium的3.141.0这个稳定版本。这个正式版本持续了将近3年的时间。
2021年10月13号,才看到4.0的正式版本退出,其中定位方式的语法发生了改变,
之前的selenium既可以使用find_element_by_*查找元素,也可以使用find_element查找元素。
但是4.0只能使用find_element查找元素。
关于复合类定位
比如说我们要爬取如图微博中某个用户的粉丝数量。我们按F12进入审查元素。
可以看到使用class是一个复合元素
如果我们想要爬取这个元素的文字,有的开发人员会使用CLASS_NAME进行定位。
s=driver.find_element(By.CLASS_NAME,'woo-box-flex woo-box-alignCenter ProfileHeader_h4_gcwJi').text
但程序运行后不是报错就是无法返回正确的结果。
因此,对于class中的复合类,我们采用CSS_SELECTOR进行定位,定位方式也十分简单,只需要将原来以空格隔开的复合类将空格替换成'.',并且在第一个类名前也加上'.',即可通过CSS_SELECTOR进行定位以获取正确的元素。
s=driver.find_element(By.CSS_SELECTOR,'.woo-box-flex.woo-box-alignCenter.ProfileHeader_h4_gcwJi').text