• Python3+Selenium3+webdriver学习笔记7(选择多链接的结果、iframe、下拉框)


    #!/usr/bin/env python
    # -*- coding:utf-8 -*-

    from selenium import webdriver
    from selenium.webdriver.common.action_chains import ActionChains
    from selenium.webdriver.support.select import Select

    import time,os
    import random

    # about:addons 火狐浏览器安装组件,访问的地址

    # <input id="kw" name="wd" class="s_ipt" value="" maxlength="255" autocomplete="off">
    #id
    keys="测试部落"
    delay=3
    url="https://www.baidu.com/"
    # url="https://mail.163.com/"
    driver=webdriver.Firefox()

    driver.get(url)
    #按关键字搜索后,发现结果页面有共同元素<div class="result c-container "
    # <div class="result c-container " id="5" srcid="1599" tpl="se_com_default"
    # data-click="{&quot;rsv_bdr&quot;:&quot;0&quot;,&quot;p5&quot;:5}">
    # <h3 class="t">
    # <a data-click="{
    # 'F':'778317EA',
    # 'F1':'9D73F1E4',
    # 'F2':'4CA6DE6B',
    # 'F3':'54E5343F',
    # 'T':'1543897223',
    # 'y':'777DD28E'
    #
    # }"href="http://www.baidu.com/link?url=...." target="_blank"><em>selenium自动化</em>测试实战 - Trinity - CSDN博客</a>
    # </h3>

    driver.find_element_by_id("kw").send_keys(keys)

    #点击搜索按钮提交
    driver.find_element_by_id("su").click()

    #获取符合条件的结果的超链接
    # href_list=driver.find_elements_by_css_selector("div[tpl='se_com_default']>h3>a")
    href_list=driver.find_elements_by_css_selector("div[srcid='1599']>h3>a")

    #获取元素属性信息 网页标题 标签名 ID 网页尺寸 位置和尺寸 位置
    print(href_list[1].text)
    print(href_list[1].tag_name)
    print(href_list[1].id)
    print(href_list[1].size)
    print(href_list[1].rect)
    print(href_list[1].location)

    #结果连接个数
    urllen=len(href_list)
    print(urllen)

    #随机值
    rand=random.randint(0,urllen)

    url=href_list[1].get_attribute('href')
    print(url)
    driver.get(url)

    #随机点击查询出的超连接页面
    href_list[rand].click()

    #iframe切换
    # <iframe name="" id="x-URS-iframe1543906125221.7507" scrolling="no"
    # style=" 100%; height: 100%; border: medium none; background: rgba(0, 0, 0, 0) none repeat scroll 0% 0%;"
    # src="https://dl.reg.163.com/webzj/v1.0.1/pub/index_dl2_new.html?cd=https%3A%2F%2Fmimg.127.net%2Findex%2F163%2Fscripts%2F2017%2Fpc%2Fcss%2F&amp;"
    # "cf=urs.7ac8b88e.css&amp;MGID=1543906125221.7507&amp;wdaId=&amp;pkid=CvViHzl&amp;product=mail163" frameborder="0"></iframe>

    #最长30秒
    driver.implicitly_wait(2)

    #默认可通过iframe的ID name定位 由于iframe的id后面有附加随机数,所以不成功,但大致处理方式就是这样
    driver.switch_to.frame("x-URS-iframe")
    driver.find_element_by_name("name").send_keys("test")
    driver.find_element_by_name("password").send_keys("123456")

    #回到主页面上
    driver.switch_to.default_content()

    #百度-设置-搜索页面-全部语言-每页多少条
    # <select name="NR" id="nr">
    # <option value="10" selected="">每页显示10条</option>
    # <option value="20">每页显示20条</option>
    # <option value="50">每页显示50条</option>
    # </select>

    #下拉框操作
    mouse=driver.find_element_by_link_text("设置")
    ActionChains(driver).move_to_element(mouse).perform()
    driver.find_element_by_link_text("搜索设置").click()

    #分步骤定位
    select=driver.find_element_by_id("nr")
    select.find_element_by_xpath("//option[@value='20']").click()

    #直接定位
    driver.find_element_by_xpath(".//*[@id='nr']/option[2]").click()

    #通过索引定位 从0开始
    Select(select).select_by_index(1)

    #通过value定位
    Select(select).select_by_value('20')

    #通过选项的内容定位
    Select(select).select_by_visible_text('每页显示20条')

    #第一个选项
    Select(select).first_selected_option

    #所有选项
    Select(select).all_selected_options

    #取消所有选项的选择
    Select(select).deselect_all()


    time.sleep(delay)
    driver.quit()

  • 相关阅读:
    第十一周助教小结
    第十周助教小结
    第九周助教小结
    第八周助教小结
    第七周助教小结
    第六周助教小结
    第五周助教小结
    [SHOI2006]有色图
    [JSOI2019]神经网络
    【CF 715E】Complete the Permutations
  • 原文地址:https://www.cnblogs.com/NiceTime/p/10064504.html
Copyright © 2020-2023  润新知