• 自动化案例


    经过前几周的加班,每天都要提一遍加班申请,感觉很繁琐,想到写一个自动提交加班申请的定时任务。然后写完自动提交加班申请这一部分,感觉有几个鲜明的点,所以贴过来记录一下。由于是公司内部系统,所以链接无法访问,所以地址和用户都用“XXX”代替!

    from selenium import webdriver
    driver=webdriver.Chrome()
    driver.get("http://xxxxxxx/")
    driver.maximize_window()
    driver.find_element_by_css_selector('[name="UserID"]').send_keys(xxx)
    driver.find_element_by_css_selector('[name="Passwrd"]').send_keys('xxxx')
    driver.find_element_by_css_selector('[value="登录"]').click()
    driver.find_element_by_css_selector('[href="javascript:portal()"]').click()
    frameElement = driver.find_element_by_css_selector('#main')
    driver.switch_to.frame(frameElement)#iframe跳转
    import time
    time.sleep(5)
    js = "document.getElementById('sidebar_L').style.width = '300px';document.getElementById('sidebar_L').style.heigth = '300px';"
    driver.execute_script(js)#div的高,宽为0,需要修改后才能获取到下面的元素
    time.sleep(5)
    driver.find_element_by_xpath('//div[@id="sidebar_L"]/div[@class="mokuai15 rsg5"]').click()#忽然看到了xpath获取定位的便利
    time.sleep(5)
    driver.find_element_by_xpath('/html/body/form/table/tbody/tr[5]/td[2]/input').click()
    time.sleep(5)
    frameElement1=driver.find_element_by_xpath('/html/body/div/iframe')
    driver.switch_to.frame(frameElement1)#又需要跳转到一个iframe,这个iframe没有id,没有name,所以用了xpath方式定位
    driver.find_element_by_xpath('//*[@id="dpTodayInput"]').click()
    driver.switch_to.parent_frame()#需要再跳回到上一个iframe
    time.sleep(5)
    js="document.getElementById('st_gl0').parentElement.children[13].children[3].children[0].children[7].children[1].children[0].value='19:30'"
    driver.execute_script(js)#input框内的默认值需要先删除再修改,所以直接用js给修改了。
    time.sleep(5)
    js="document.getElementById('st_gl0').parentElement.children[13].children[3].children[0].children[8].children[1].children[0].value='21:00'"
    driver.execute_script(js)
    time.sleep(5)
    js="document.getElementById('st_gl0').parentElement.children[13].children[3].children[0].children[9].children[1].children[0].value='1.5'"
    driver.execute_script(js)
    time.sleep(5)
    driver.find_element_by_xpath('/html/body/form/table/tbody/tr[16]/td[2]/select/option[2]').click()#select方式可以用css定位,但是xpath比较方便,就用了xpath
    time.sleep(5)
    driver.find_element_by_xpath('/html/body/form/table/tbody/tr[25]/td[2]/input').click()
    driver.switch_to.alert.accept()#对弹窗alert的处理

    time.sleep(5)
    driver.quit()

    自动充值例子:

    from selenium import webdriver
    driver = webdriver.Chrome()
    driver.get('http://XXXXXX')
    driver.maximize_window()
    driver.find_element_by_css_selector('[name="name"]').send_keys('XXXXX')
    driver.find_element_by_css_selector('[name="passwd"]').send_keys('XXXX')
    driver.find_element_by_css_selector('[onclick="check_login()"]').click()
    driver.find_element_by_css_selector('span[style="line-height:100%;"]').click()
    driver.find_element_by_css_selector('[href="/?system_id=3"]').click()
    driver.find_element_by_css_selector('[href="/tree?parent_id=1006"]').click()
    js = "document.getElementById('leftside').style.width = '500px';document.getElementById('leftside').style.heigth = '500px';"
    driver.execute_script(js)
    import time
    time.sleep(1)
    driver.find_element_by_css_selector('.cur>div>a[rel="rbplist"]').click()
    from selenium.webdriver.support.select import Select
    import time
    time.sleep(1)
    s=driver.find_element_by_css_selector("#recharge_way")
    Select(s).select_by_index(1)
    driver.find_element_by_css_selector('[name="usr"]').send_keys("r0XXXX")#充值账号
    driver.find_element_by_css_selector('[name="amount"]').send_keys(10)
    driver.find_element_by_css_selector('#reason').send_keys("test")
    driver.find_element_by_css_selector('.buttonContent>button[name="submit"]').click()
    from selenium.webdriver.common.alert import Alert
    import time
    time.sleep(5)
    driver.find_element_by_css_selector('[rel="callback"]').click()
  • 相关阅读:
    组件传值---组件与弹窗组件传值
    elementUI拿到当前表格行的数据的另一种写法
    elementUi-复选框,使用v-for循环出来的复选框,默认多个值为勾选状态
    点击事件,根据不同的下标实现切换不同的内容
    elementUI表格行的点击事件,点击表格,拿到当前行的数据
    在使用element-ui搭建的表格中,实现点击"定位"按钮后,屏幕滚动到对应行的位置
    renren-fast-vue-动态路由-添加路由-方式一(直接在原有结构上添加)
    renren-fast-vue-动态路由
    vue-element-admin打包后白屏的问题
    2月20日-寒假学习进度20
  • 原文地址:https://www.cnblogs.com/wxcx/p/11431301.html
Copyright © 2020-2023  润新知