1、元素定位
有两种写法,第一行的比较常用
语法 | 含义 |
---|---|
find_element_by_id(“”) find_element(By.ID, “”) |
根据id来查找某个元素 |
find_element_by_class_name(“”) find_element(By.CLASS_NAME, “”) |
根据class来查找某个元素 |
find_element_by_name(“”) find_element(By.NAME, “”) |
根据name来查找某个元素 |
find_element_by_tag_name(“”) find_element(By.TAG_NAME, “”) |
根据标签名来查找某个元素 |
find_element_by_xpath(“”) find_element(By.XPATH, “”) |
根据xpath语法来查找某个元素 |
find_element_by_css_selector(“”) find_element(By.CSS_SELECTOR, “”) |
根据css选择器来查找某个元素 |
1.1 注意
find_element
是获取第一个满足条件的元素。find_elements
是获取所有满足条件的元素,需要遍历再使用。- selenium打开的浏览器和自己打开的浏览器,页面中的一些属性值,有时候是不一致的,如果报错,应考虑到是否是两个打开的浏览器属性值不一致而导致的;
- 在
find_element
后可以使用text取出定位元素的内容,依次返回定位元素中的文本(包含字标签中的); - 在
find_element
后可以使用get_attribute()取出属性的值;
2、操作表单元素
2.1 操作输入框
第一步:找到这个元素。
第二步:使用send_keys(value),将数据填充进去。
inputTag = driver.find_element_by_id('kw')
inputTag.send_keys('python')
使用clear方法可以清除输入框中的内容
inputTag.clear()
2.2 操作checkbox(单选框)
因为要选中checkbox标签,在网页中是通过鼠标点击的。因此想要选中checkbox标签,那么先选中这个标签,然后执行click事件。
rememberTag = driver.find_element_by_name("rememberMe")
rememberTag.click()
2.3 操作按钮
操作按钮有很多种方式。比如单击、右击、双击等。这里讲一个最常用的。就是点击。直接调用click函数就可以了。
inputTag = driver.find_element_by_id('su')
inputTag.click()
2.4操作select(下拉框)
select元素不能直接点击,因为点击后还需要选中元素;这时候selenium就专门为select标签提供了一个类selenium.webdriver.support.ui.Select;将获取到的元素当成参数传到这个类中,创建这个对象。以后就可以使用这个对象进行选择了。https://www.17sucai.com/boards/53562.html
- selectTag = Select(“定位的标签”)进行实例化
- select_by_value(“”)通过value进行选择下拉框中的内容,value是页面中的属性
- select_by_index(0)通过索引进行选择 ```python from selenium import webdriver from selenium.webdriver.support.ui import Select
driver = webdriver.Chrome() driver.get(“https://www.17sucai.com/pins/demo-show?id=5926“) iframe = driver.find_element_by_id(“iframe”) driver.switch_to.frame(iframe) selectTag = Select(driver.find_element_by_class_name(“nojs”)) selectTag.select_by_value(“JP”) selectTag.select_by_index(3)
<a name="yCNrN"></a>
### 3、iframe
<a name="cUtK1"></a>
#### 3.1 定义
**iframe是HTML内联框架元素 (`<iframe>`)** 表示嵌套的浏览器内容。它能够**将另一个HTML页面嵌入到当前页面中**。
<a name="fdGH2"></a>
#### 3.2 selenium进入iframe
```python
iframe = driver.find_element_by_id("iframe")
driver.switch_to.frame("iframe元素的定位")
driver.switch_to_frame(iframe) # Python已不建议使用(有删除线)
进入iframe之后就可以对在iframe中的元素进行定位的操作了;
当我们在页面中定位不到元素时,可以看元素是否被放在iframe中
退出iframe,回到主页面
driver.switch_to.default_content()