• python + selenium


    参考资料

    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)
  • 相关阅读:
    JavaScript 类私有方法的实现
    sublime小程序插件
    显示引擎innodb状态详解
    JAVA学习资料大全
    mongo-aggregate命令详解
    PHP error_reporting
    mongo基本命令
    php56升级后php7 mcrypt_encrypt 报错
    docker 基础命令
    敏捷建模:增强沟通和理解
  • 原文地址:https://www.cnblogs.com/aqiuboke/p/11176431.html
Copyright © 2020-2023  润新知