- from selenium.webdriver.common.keys import Keys
- 动态网页有时需要将鼠标悬停在某个元素上,相应的列表选项才能显示出来。
- 而爬虫在工作的时候也需要相应的操作,才能获得列表项。
- driver.find_element_by_class_name(...).send_keys(需要输入的字串)
- #find_element_by_class_name可以是find_element_by_link_text、find_element_by_id等其他方式
- #send_keys一些特殊字符串,可以通过help(Keys)显示出来,如实现按回车操作需要使用Keys.ENTER
实现网页上的鼠标的动作
driver.find_element_by_link_text('更多').click()#需要指示到/a链接的位置
#同样find_element_by_link_text可以是find_element_by_id等类似的其他方式
使用ActionChains可以实现鼠标的更多操作
from selenium.webdriver.common.action_chains import *
ActionChains中的操作:
click() -- 单击、click_and_hold()-- 按下鼠标左键在一个元素上、context_click() --单击、double_click()--双击、drag_and_drop()--拖动、key_down()、key_up()、move_by_offset()、move_to_elment()、move_to_elment_with_offset()
- #首先需要将鼠标停留到相应的元素
- chain = ActionChains(driver)
- moveelment = driver.find_element_by_xpath("...")
- chain.move_to_element(moveelment).perform()
- driver.find_element_by_xpath("//div[@class='search-condition c5 drop-down']/a/div").click()
- #而后进行选择列表项
- driver.find_element_by_xpath("//ul[@id='category_list']/li[1]/a").click()
- driver.find_element_by_xpath("//ul[@id='category_list']/li[2]/a").click()
- #... ...
- driver.find_element_by_xpath("//ul[@id='category_list']/li[1]/a").click()
- driver.maximize_window()
- time.sleep(1)
- driver.find_element_by_xpath("//ul[@id='category_list']/li[2]/a").click()
- #切换网页,以获取新弹出的网页窗口
- for handle in driver.window_handles:
- driver.switch_to_window(handle)
- print('current url:%s'%driver.current_url)
联系客服