Selenium send_keys 不会两次执行相同的元素

Selenium send_keys doesn't do the same element twice

我正在尝试根据 HTML 中的元素向 Wordle 发送键,并且发现只要有重复的字母,它就不会按两次键。

例如,如果单词 = 'Trent',它只会键入 'Tren',但如果单词是 'Burnt',则会发送整个单词。

这是我当前的代码;

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.by import By

driver = webdriver.Chrome()
driver.get("https://www.wordleunlimited.com/")


word = "Trent"
letters = []
for letter in word:
    button = "//div[text()='%s']" % letter.lower()
    elem = driver.find_element(By.XPATH, button)
    elem.click()

我为此找到的唯一解决方法是完全避免 HTML 元素,而只使用键盘库。如下所示。有没有办法用元素来解决这个问题?

from selenium import webdriver
from keyboard import press
from keyboard import write

driver = webdriver.Chrome()
driver.get("https://www.wordleunlimited.com/")
write(word.lower(), delay = 0.05)
press('enter')

你应该看看 div[text()=''] 在你 select 之后做了什么 1 t 它用那个值制作了另一个 div 标签。

"//div[contains(@class,'Game-keyboard-button') and text()='%s']" % letter.lower()

您应该使用特定的 class 和文本来定位 div。