1 import time
2 from concurrent.futures.thread import ThreadPoolExecutor
3 from selenium.webdriver import Chrome
4 from selenium.webdriver.chrome.options import Options
5 from selenium.webdriver.common.by import By
6 from selenium.webdriver.common.action_chains import ActionChains
7
8
9 def star_search():
10 opt = Options()
11 # 防止被识别
12 opt.add_experimental_option("detach", True)
13 opt.add_argument('--disable-blink-features=AutomationControlled')
14 web = Chrome(options=opt)
15 web.get("https://wjx.cn/vm/*******.aspx")
16
17 # 单选1, //*[@id="div1"]/div[2]/div[2]/div 选项2
18 num = 2
19 web.find_element(By.XPATH, f'//*[@id="div1"]/div[2]/div[{num}]/div').click()
20
21 # 多选2 //*[@id="div2"]/div[2]/div[2]/div
22 web.find_element(By.XPATH, '//*[@id="div2"]/div[2]/div[1]/div').click()
23
24 # 填空3
25 web.find_element(By.XPATH, '//*[@id="q3"]').send_keys("测试填空")
26
27 # 点击提交
28 web.find_element(By.XPATH, '//*[@id="ctlNext"]').click()
29 time.sleep(2)
30
31 # 验证确认
32 yan = web.find_element(By.XPATH, '//*[@id="alert_box"]/div[2]/div[2]')
33 if yan:
34 yan.click()
35 time.sleep(2)
36
37 # 验证点击
38 cli = web.find_element(By.XPATH, '//*[@id="SM_BTN_1"]/div[1]/div[4]')
39 if cli:
40 cli.click()
41 time.sleep(5)
42
43 # 拖拽验证
44 btn = web.find_element(By.XPATH, '//*[@id="nc_1__scale_text"]')
45 if btn:
46 ActionChains(web).drag_and_drop_by_offset(btn, 300, 0).perform()
47
48
49 if __name__ == '__main__':
50 for n in range(2):
51 with ThreadPoolExecutor(4) as t:
52 for i in range(4):
53 t.submit(star_search)