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。
我正在尝试根据 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。