参考资料
https://www.cnblogs.com/3sss-ss-s/p/10313758.html#_label1
本文使用python 3.7 + 74版本 谷歌浏览器
安装
#安装:selenium+chromedriver pip3 install selenium 下载chromdriver.exe添加环境变量或者放到python安装路径的scripts目录中即可 国内镜像网站地址:http://npm.taobao.org/mirrors/chromedriver 最新的版本去官网找:https://sites.google.com/a/chromium.org/chromedriver/downloads
验证安装
from selenium import webdriver #没配置环境变量,要指定路径 #driver = webdriver.Chrome ('zip/chrome.exe') driver = webdriver.Chrome () #弹出浏览器
针对html中获取iframe中#document下的节点内容,使用browser.switch_to.frame(0)获取iframe节点
案列
from selenium import webdriver import time import re from selenium.webdriver.common.keys import Keys from selenium.webdriver.support.wait import WebDriverWait from selenium.webdriver.support import expected_conditions as EC from selenium.webdriver.common.by import By from pyquery import PyQuery as pq import os from selenium.webdriver import ActionChains username = "321lzhj688" password = "yilufa168" browser = webdriver.Chrome() browser.maximize_window() browser.get("https://www.1688.com/") input_tag = browser.find_element_by_id('alisearch-keywords') input_tag.clear input_tag.send_keys('铝制不粘锅') input_tag.send_keys(Keys.ENTER) wait = WebDriverWait(browser, 5) wait.until(EC.presence_of_element_located((By.ID,'s-module-overlay'))) browser.find_element_by_xpath('//div[@id="s-module-overlay"]/div/div/div[1]/div/div[2]/div/a').click() # 获取ifram中#document下的节点内容 browser.switch_to.frame(0) browser.find_element_by_xpath('//div[@id="page2"]/div/div/div[@class="bd"]/div[@class="quick-form"]/div/div[@class="login-links"]/a[text()="密码登录"]').click() # 切到frame中之后,我们便不能继续操作主文档的元素,这时如果想操作主文档内容,则需切回主文档。
browser.switch_to.default_content()
# 用户登录又出现iframe节点 browser.switch_to.frame(0) browser.find_element_by_id('TPL_username_1').send_keys(username) browser.find_element_by_id('TPL_password_1').send_keys(password)