find_elements:

  1. 找到所有满足条件的页面元素。
  2. 通过下标来选择第几个。
  3. 经常用来组合className或者tagname使用。
  4. 使用方法和find_element一样。

find_element:

  1. 找到满足条件的第一个页面元素。
  2. 所以driver.find_elements(...)[0] = driver.find_element(...)

举例:

对于这三个select类型的下拉框,className, xpath和css_selector都无法直接定位, 但是他们都有同样的className 和 select 属性。

代码如下:

1 # 选择收货地区-省
2 sheng = driver.find_element(By.ID, "add-new-area-select")
3 Select(sheng).select_by_visible_text("江苏省")
4 # 选择收货地区-市
5 shi = driver.find_elements(By.CLASS_NAME, "add-new-area-select")[1]
6 Select(shi).select_by_visible_text("苏州市")
7 # 选择-地区
8 qu = driver.find_elements(By.TAG_NAME, "select")[2]
9 Select(qu).select_by_visible_text("张家港市")