指定位置認証コードをクリックして解読(Python)
構想:ブラウザ駆動オブジェクトを作成してログインページをロードしてページをロードしてからユーザー名とパスワードログインモードに切り替えて携帯電話番号を入力し、ここで待つ必要があることに注意して入力ボックスを取得してパスワードを入力して検証ボタンをクリックしてポップアップ検証画像を取得スーパー鷹打コード平台識別図形の座標を使って座標情報を取得し、x、y座標はそれぞれ2で割った.コンピューターの解像度があまりにもひどいので、元の2倍です.普通の解像度なら2で割って、そのまま使えばいいです.マウスを移動して、座標点の位置をクリックしてログインボタンをクリックします
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver import ActionChains
import time
#
from chaojiying import chaojiying
# , , ,mac
options=webdriver.ChromeOptions()
options.headless=True
driver=webdriver.Chrome(options=potions)
driver.get('http://www.zhaopingou.com/signin')
driver.find_element_by_class_name('li02').click()
wait=WebDriverWait(driver,20,0.5)
#
login_phone=wait.until(EC.visibility_of_element_located((By.ID,'pwd_login_phone')))
login_phone.send_keys('***')
#
driver.find_element_by_id('form_login_password').send_keys('***')
#
captcha = wait.until(EC.visibility_of_element_located((By.XPATH, '//div[@class="phone_login_pwd"]//iframe[starts-with(@id, "captcha_widget")]')))
captcha.click()
#
# ( )
captcha_element = wait.until(EC.visibility_of_element_located((By.XPATH, '//body[@class="graybc"]//iframe[starts-with(@id, "captcha_frame")]')))
captcha_element.screenshot('zhaopingou.png')
#
bytes_img=captcha_element.screenshot_as_png
# print(bytes_img)
result=chaojiying.post_pic(bytes_img,'9101')
x,y=result['pic_str'].split(',')
print(x,y)
x=int(x)
y=int(y)
# ActionChains(driver).move_to_element_with_offset(bytes_img,x,y).click().perform()
ActionChains(driver).move_to_element_with_offset(captcha_element, x, y).click().perform()
time.sleep(2)
driver.find_element_by_id('free_login_btn').click()
print(driver.window_handles)
driver.switch_to.window(driver.window_handles[0])
# time.sleep(5)
driver.quit()