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),将数据填充进去。

  1. inputTag = driver.find_element_by_id('kw')
  2. 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()