Python-Selenium-Web自动化自学第二天
2. 选择元素基本方法
2.1 选择元素的方法
要想定位元素,就是先告诉浏览器,你要操作哪个界面元素, 让它找到你要操作的界面元素。方法就是:告诉浏览器,你要操作的这个 web 元素的 特征 。元素的特征怎么查看?请大家用chrome浏览器访问百度,按F12后,点击下图箭头处的 Elements 标签(中文名叫元素),即可查看页面对应的HTML 元素。

2.2 根据 id属性 选择元素
页面上有个输入股票名称的输入框,使用鼠标右键菜单 查看该 input元素,会发现它有一个属性叫id。

我们可以把 id 想象成元素的编号, 是用来在html中标记该元素的。根据规范, 如果元素有id属性 ,这个id 必须是当前html中唯一的。
1 | import time |
其中driver = webdriver.Chrome(),driver赋值的是 WebDriver 类型的对象,我们可以通过这个对象来操控浏览器,比如打开网址、选择界面元素等。
使用了 WebDriver 对象的方法 find_element ,这行代码运行是,就会发起一个请求通过浏览器驱动转发给浏览器,告诉它,需要选择一个id为 kw 的元素。浏览器找到id为kw的元素后,将结果通过浏览器驱动返回给自动化程序,所以find_element方法会返回一个 WebElement 类型的对象。我们通过这个WebElement对象,就可以 操控 对应的界面元素。比如调用这个对象的 send_keys 方法就可以在对应的元素中 输入字符串,调用这个对象的 click 方法就可以 点击 该元素。如果根据 传入的ID,找不到这样的元素,find_element 方法就会抛出selenium.common.exceptions.NoSuchElementException 异常。
这里我直接用了
driver.find_element(By.ID,'kw')代表了 WebElement 类型的对象,你也可以可以定义一个element的变量。
2.3 根据 class属性、tag名 选择元素
例如有个网址对应的html内容 有如下的部分
1 | <body> |
我们用class属性定位元素
1 | driver.find_elements(By.CLASS_NAME, 'animal') |
注意element后面多了个s,find_elements 返回的是找到的符合条件的
所有元素 (这里有3个元素), 放在一个列表中返回。而如果我们使用wd.find_element(注意少了一个s) 方法, 就只会返回第一个元素。
2.4 根据 tag 名 选择元素
类似的,我们可以通过指定 参数为 By.TAG_NAME ,选择所有的tag名为 div的元素,如下所示
1 | from selenium import webdriver |





