【Python3 爬虫】U32_selenium操作表单元素

1.操作输入框

操作输入框分为2个步骤,如下

  • 第一步:找到这元素
  • 第二步:使用send_keys(value),将数据填充进去

以下是示例代码:

inputTag = driver.find_element_by_id('kw')

inputTag.send_keys('china')

使用clear方法可以清除输入框中的内容,示例代码如下:

inputTag.clear()

实战演练

from selenium import webdriver
import time
# chromedriver的绝对路径
driver_path = r'D:\Python\chromedriver.exe'

# 初始化一个driver,并且指定chromedriver的路径
driver = webdriver.Chrome(executable_path=driver_path)

# 请求网页
driver.get("https://www.baidu.com/")

inputTag = driver.find_element_by_id('kw')
inputTag.send_keys("中国")

# 沉睡3s后清除内容
time.sleep(3)
inputTag.clear()

2.操作checkbox

因为要选中checkbox标签,在网页中是通过鼠标点击的。因此想要选中checkbox标签,那么先选中这个标签,然后执行click事件。
示例代码如下:

rememberTag = driver.find_element_by_name("rememberMe")
rememberTag.click()

实战演练
我们在登录豆瓣的时候会看到如下界面,下图标记部分为checkbox

通过google的检查我们可以找到该checkbox的name属性是autoLogin,以下代码实现了选中该checkbox

from selenium import webdriver
import time
# chromedriver的绝对路径
driver_path = r'D:\Python\chromedriver.exe'

# 初始化一个driver,并且指定chromedriver的路径
driver = webdriver.Chrome(executable_path=driver_path)

# 请求网页
driver.get("https://www.webportal.top/")

rememberTag = driver.find_element_by_id('autoLogin')
# 停留3秒后选中
time.sleep(3)
rememberTag.click()

3.操作select标签

select元素不能直接点击。因为点击后还需要选中元素。这时候selenium就专门为select标签提供了一个类selenium.webdriver.support.ui.Select。将获取到的元素当成参数传到这个类中,创建这个对象。以后就可以使用这个对象进行选择了。示例代码如下:


from selenium.webdriver.support.ui import Select

from selenium import webdriver

# chromedriver的绝对路径
driver_path = r'D:\Python\chromedriver.exe'

# 初始化一个driver,并且指定chromedriver的路径
driver = webdriver.Chrome(executable_path=driver_path)

# 请求网站
driver.get('http://jyzx.lzjtu.edu.cn/eweb/jygl/jyglext.so?type=dwzc')

# 选中这个标签,然后使用Select创建对象

selectTag = Select(driver.find_element_by_id("szsf"))

# 根据索引选择
# selectTag.select_by_index(1)

# 根据值选择
selectTag.select_by_value("11")

# 根据可视的文本选择
#selectTag.select_by_visible_text("北京市")


# 取消选中所有选项

# selectTag.deselect_all()

4.操作按钮

操作按钮有很多种方式。比如单击、右击、双击等。这里讲一个最常用的。就是点击。直接调用click函数就可以了。示例代码如下:

inputTag = driver.find_element_by_id('su')
inputTag.click()

实战演练

模拟在百度输入【中国】,然后点击【百度一下】查询


from selenium import webdriver
from selenium.webdriver.common.by import By
# chromedriver的绝对路径

driver_path = r'D:\Python\chromedriver.exe'

# 初始化一个driver,并且指定chromedriver的路径

driver = webdriver.Chrome(executable_path=driver_path)

# 请求网页

driver.get("https://www.baidu.com/")

# inputTag = driver.find_element_by_id('kw')
inputTag = driver.find_element(By.ID,'kw')
inputTag.send_keys("中国")

inputTag = driver.find_element_by_id('su')
inputTag.click()
posted @ 2020-04-09 17:10  OLIVER_QIN  阅读(363)  评论(0编辑  收藏  举报