python+selenium 抢会议室

  • 首先介绍下selenium查找元素的方法:

  find_element_by_id()                              #通过id进行元素查找

  find_element_by_name()                        #通过name进行元素查找,一般用来查找表单元素

  find_element_by_class_name()              #通过className进行查找(查找单个)

  find_elements_by_class_name()            #通过className进行查找(查找多个)

 find_element_by_tag_name()                 #通过标签元素查找单个

 find_elements_by_tag_name()               #通过标签查找多个元素,返回一个list eg:find_elements_by_tag_name(‘div’)

 find_element_by_css_selector()            #通过选择器进行查找 (查找单个)s

 find_elements_by_css_selector()          #通过选择器进行查找(查找多个) 返回一个list eg: find_elements_by_css_selector('div.username')

 find_element_by_link_text(link_text)     #查找a标签中内容为link_text的元素

 find_element_by_partial_link_text(link_text) #查找a标签中内容包含link_text的元素

 find_element_by_xpath()                      #通过xpath进行查找

  • 下面是关于抢会议室的具体代码 
    from selenium import webdriver
    from time import sleep
    
    login_url = '会议室的登录地址:url'
    user_name = 'your_username'
    psw = 'your_password'
    # 时间为24小时制,上午5点为05,下午5点为17
    start_time = '17' address = '北京4#楼1层1A' def login(): browser.find_element_by_class_name('login__input-username___1sZTr').send_keys(user_name) browser.find_element_by_class_name('login__input-password___1ai2m').send_keys(psw) sleep(1) browser.find_element_by_css_selector('.login__button___1qk3J').click() print('登录成功了...') def getFreeRoom(): global Refresh Refresh = False # 逐渐滚动浏览器窗口,令ajax逐渐加载 for i in range(0, 1): browser.execute_script("document.getElementsByClassName('am-list-view-scrollview')[0].scrollTop=100000"); i += 1 sleep(1) roomItemList = browser.find_elements_by_css_selector('.roomItem') # print(roomItemList) sleep(1) for item in roomItemList: # 北京6#楼7层明治 if item.find_element_by_class_name('gray3').text == address: freeList = item.find_elements_by_css_selector('.free') freeDataTimeList = [] for free in freeList: freeDataTimeList.append(free.get_attribute('data-time-index')) print(freeDataTimeList) if start_time in freeDataTimeList: Refresh = True for free in freeList: if free.get_attribute('data-time-index') == start_time: free.click() sleep(1) browser.find_element_by_css_selector('.sunl-input').send_keys('whj自动抢会议室') browser.find_element_by_css_selector('.query-button').click() break else: Refresh = False break def main(): global browser browser = webdriver.Chrome() # browser = webdriver.Firefox() # 打开登录页面 browser.get(login_url) sleep(3) login() sleep(1) # 适配会议室的bug browser.find_element_by_xpath('/html/body/div/div/div[2]/div[2]/div/div[2]/div[2]/div/div').click() sleep(1) browser.find_element_by_xpath('/html/body/div/div/div[2]/div[2]/div/div[2]/div[1]/div/div').click() sleep(3) getFreeRoom() global count count=1 print(u"循环点击查询... 第 %s 次" % count) while Refresh==False: count=count+1 sleep(2) browser.refresh() sleep(3) getFreeRoom() print(u"循环点击查询... 第 %s 次" % count) if __name__=='__main__': main()

     

  

转载于:https://www.cnblogs.com/fewhj/p/11452525.html

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值