基于selenium脚本预约某不入流大学实验室仪器-观点
(资料图片仅供参考)
# 导入的库import timefrom selenium import webdriverfrom selenium.webdriver.common.by import Byfrom selenium.webdriver.common.action_chains import ActionChainsfrom selenium.webdriver.common.keys import Keys
# selenium优化options = webdriver.EdgeOptions()options.add_argument('headless')options.add_argument('--disable-gpu')
# 打开实验室主页sta = time.perf_counter()driver = webdriver.Edge(options=options)driver.get("http://noobuniversity.edu.cn")
# 登陆验证driver.find_element(By.XPATH, value="/html/body/form/div[4]/div/div[1]/div/div/a[1]").click()driver.find_element(By.ID, value="username").send_keys("baba")driver.find_element(By.ID, value="password").send_keys("erzi")driver.find_element(By.CLASS_NAME, value="login-button").click()
# 切换窗口driver.find_element(By.XPATH, value="/html/body/form/div[4]/div/div[5]/div[2]/div[2]/div/div[2]/a").click()handles = driver.window_handlesdriver.switch_to.window(handles[1])
# 搜索仪器inp = driver.find_element(By.XPATH, value="/html/body/form/div[4]/div[1]/div[4]/div/div[1]/table/tbody/tr[2]/td[2]/table/tbody/tr[1]/td[4]/input")webdriver.ActionChains(driver).move_to_element(inp).click().send_keys("扫描").send_keys(Keys.ENTER).perform()driver.find_element(By.XPATH, value="/html/body/form/div[4]/div[1]/div[4]/div/div[2]/table/tbody/tr[3]/td[2]/div/div[1]/ul/li[2]/div[2]/span[2]/a[2]").click()
# 填写预约时间和信息driver.switch_to.frame("Iframe2")# 对于22日此处可以改为[4]driver.find_element(By.XPATH, value="/html/body/form/div[3]/div/div/div/table/tbody/tr[2]/td[2]/table[3]/tbody/tr/td/ul[2]/li[2]/div/table/tbody/tr[3]/td/table/tbody/tr[5]/td[3]").click()driver.find_element(By.XPATH, value="/html/body/form/table[2]/tbody/tr[2]/td[2]/div/table/tbody/tr[2]/td/span").click()driver.find_element(By.ID, value="10").click()driver.find_element(By.ID, value="11").click()driver.find_element(By.ID, value="12").click()driver.find_element(By.ID, value="13").click()driver.find_element(By.ID, value="14").click()driver.find_element(By.ID, value="15").click()driver.find_element(By.XPATH, value="/html/body/form/div[3]/span/a").click()driver.find_element(By.ID, value="tbmeasurename").send_keys("1")driver.find_element(By.ID, value="tbQuantity").clear()driver.find_element(By.ID, value="tbQuantity").send_keys("1")driver.find_element(By.ID, value="tbmeasurecolor").send_keys("1")driver.find_element(By.ID, value="tbChemical").send_keys("1")driver.find_element(By.ID, value="txtMemo").send_keys("1")driver.find_element(By.NAME, value="Button2").click()
# 退出,并计时driver.quit()end = time.perf_counter()print(end-sta)
# 脚本用时可以做更加详细的优化
私货:垃圾学校给爷爬!!!
关键词: