Я создал код, чтобы идеально пройти тест на человеческом уровне. Почему не получается? - PullRequest
2 голосов
/ 10 июля 2020

Ниже приведен код, который я сделал в попытке получить высшую оценку на этом веб-сайте: https://humanbenchmark.com/tests/verbal-memory

По какой-то причине он не работает каждый раз, когда я запускаю его, и я не могу выяснить почему.

from selenium import webdriver
import time

driver = webdriver.Chrome("D:\\user\\Downloads\\chromedriver_win32\\chromedriver.exe")

driver.get("https://humanbenchmark.com/tests/verbal-memory")

word_list = []

time.sleep(2)

start_button = driver.find_element_by_xpath("/html/body/div/div/div[4]/div[1]/div/div/div/div[4]/button")
start_button.click()

def click_new():
    new_button = driver.find_element_by_xpath("/html/body/div/div/div[4]/div[1]/div/div/div/div[3]/button[2]")
    new_button.click()

def click_seen():
    seen_button = driver.find_element_by_xpath("/html/body/div/div/div[4]/div[1]/div/div/div/div[3]/button[1]")
    seen_button.click()

while True:
    current_word = driver.find_element_by_class_name("word")
    if current_word.text in word_list:
        click_seen()
    else:
        click_new()
    word_list.append(current_word.text)
    time.sleep(2)

1 Ответ

1 голос
/ 10 июля 2020

Я добавляю слово в список перед тем, как нажать на кнопку:

while True:
    current_word = driver.find_element_by_class_name("word")
    if current_word.text in word_list:
        click_seen()
    else:
        word_list.append(current_word.text)
        click_new()
    time.sleep(2)

Похоже, current_word фактически обновляется в тот момент, когда вы нажимаете кнопку, а затем это уже новое слово, которое добавляется к список. Тогда вы подумаете, что видели его, поэтому он всегда выбирал click_seen().

Я позволил ему поработать некоторое время, но оставляю вам честь побить рекорд и испортить статистику: - DDD.

...