pip install selenium
很快就安装完成了。
选择自己的浏览器版本下载就行了(版本号差不多就可以了),查看自己浏览器的方法为: 设置–>帮助–>关于Google Chrome ,如下就是我的版本号:
(注意,如果想下载比如Microsoft Edge的相关驱动,可以在命令交互界面输入:
import selenium
browser=selenium.webdriver.Edge()
报错的最后一行,会提醒下载网址,copy就可以了,如下所示:
)
## 导入模块
from selenium import webdriver
from selenium.webdriver.support.ui import Select
from time import sleep
## 打开chrome浏览器
driver=webdriver.Chrome()
## 打开网页
driver.get("https://www.wenjuan.com/s/uQzQBv7/")
sleep(1)
看到class的内容为 “radio_box” ,输入以下内容:
## 通过class_name查找 radio_box 类的元素
elem_radio=driver.find_elements_by_class_name("radio_box");
##点击第一个选项“没有”,第四个选项“还好”
elem_radio[0].click()
elem_radio[3].click()
## 通过class_name查找 check_box 类的元素
elem_check=driver.find_elements_by_class_name("check_box");
##选中第1、2、4选项
elem_check[0].click()
elem_check[1].click()
elem_check[3].click()
第四个问题本来是要用Select来做的,这里但是似乎这个问卷网的不太行,他的 “value” 采用了 “data-value” 代替了,而且 index 和 visible_text 都不可用,因此就没有继续做,以后看一下Select的源码再试试吧。
理论可用代码如下:
## 通过class_name查找元素
elem_wrapper=driver.find_elements_by_class_name("matrix_sel")
## 首先用Select把下拉框转化为Select对象,再通过index选择选项,此处选择的是第一个选项
select=Select(elem_wrapper[0]).select_by_index(1)
注意 :一般的网页都可以用Select这种方式,只不过是问卷网这个比较奇怪,所以这个方法是完全可行的。
## 查找下拉框按钮点击
elem_wrapper=driver.find_elements_by_class_name("w-selection-wrapper")
elem_wrapper[0].click()
## 找到所有的选择选项,点击第二个元素“应该不会留”
option_cell=driver.find_elements_by_class_name("w-selection-option")
option_cell[2].click()
w-selection-wrapper和w-selection-option大家在源码里都可以找到。
解释一下为啥成功了:使用select的时候,下拉框没有点击,所以下拉框的内容是隐藏的,无法被select读取到,而这里首先打开了下拉框,所以就没问题了。
## 通过id查找元素,比class更准确,id也在源码中
textarea=driver.find_element_by_id("5def9d9d92beb5764c5b2ef4")
## send_keys可以发送内容和操作
textarea.send_keys("少下雨,多下雪,晴天出点儿云彩")
## 通过calss_name查找元素
score=driver.find_elements_by_class_name("div_float");
## 打两颗星
score[1].click()
## 通过id查找元素,输入名字、年龄、号码
name=driver.find_element_by_id("option_5def9dd23631f2371655e788")
name.send_keys("小明")
age=driver.find_element_by_id("option_5def9dd23631f2371655e789")
age.send_keys("25岁")
link=driver.find_element_by_id("option_5def9dd23631f2371655e78a")
link.send_keys("1008611")
## 通过id查找元素
submit=driver.find_element_by_id("next_button")
## 点击此元素,提交表单
submit.click();
这里展示的是提交之前的页面。
from selenium import webdriver
from time import sleep
##打开chrome浏览器
driver=webdriver.Chrome()
for i in range(1,10):
print("开始第"+str(i)+"次填写")
## 打开网页
driver.get("https://www.wenjuan.com/s/uQzQBv7/")
sleep(1)
## 通过class_name查找元素
elem_radio=driver.find_elements_by_class_name("radio_box");
## 点击第一个选项,第四个选项
elem_radio[0].click()
elem_radio[3].click()
## 通过class_name查找元素
elem_check=driver.find_elements_by_class_name("check_box");
## 选中第1、2、4选项
elem_check[0].click()
elem_check[1].click()
elem_check[3].click()
## 查找下拉框按钮点击,点击第二个元素“应该不会留”
elem_wrapper=driver.find_elements_by_class_name("w-selection-wrapper")
elem_wrapper[0].click()
## 找到所有的选择选项,点击第二个元素“应该不会留”
option_cell=driver.find_elements_by_class_name("w-selection-option")
option_cell[2].click()
##通过id查找元素,比class更准确,id也在源码中
textarea=driver.find_element_by_id("5def9d9d92beb5764c5b2ef4")
##send_keys可以发送内容和操作
textarea.send_keys("少下雨,多下雪,晴天出点儿云彩")
##通过calss_name查找元素
score=driver.find_elements_by_class_name("div_float");
##打两颗星
score[1].click()
##通过id查找元素,输入名字、年龄、号码
name=driver.find_element_by_id("option_5def9dd23631f2371655e788")
name.send_keys("小明")
age=driver.find_element_by_id("option_5def9dd23631f2371655e789")
age.send_keys("25岁")
link=driver.find_element_by_id("option_5def9dd23631f2371655e78a")
link.send_keys("1008611")
##通过id查找元素
submit=driver.find_element_by_id("next_button")
##点击此元素,提交表单
submit.click();
print("第"+str(i)+"次填写完成")
sleep(5)