Я хочу использовать selenium для оценки точности шахматных ходов в моем наборе данных игр для ИИ. Пока что я могу получить доступ к панели оценки, но не к FEN (она возвращает пустую строку). Есть ли способ получить доступ к FEN в рамках этого сайта.

Это текстовое поле: введите описание изображения здесь

Я хочу взять вот это: rnbqkbnr/ppp1pppp/8/3p4/4P3/8/PPPP1PPP/RNBQKBNR w KQkq d6 0 2

Это HTML текстового поля:


Здесь приведена соответствующая часть моего кода:

from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains
from webdriver_manager.chrome import ChromeDriverManager
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.common.keys import Keys

options = Options()
options.headless = True

браузер = webdriver.Chrome(ChromeDriverManager().install(), chrome_options=options)
browser.get("https://www.365chess.com/analysis_board.php")

browser.implicitly_wait(5); fen = browser.find_element_by_id('fen_position').text
print(fen)

Ответы (1)

Так, FEN является для inputs значение хранится как "value" в свойствах, вы можете использовать .get_property("value") для доступа к нему. Вот рабочий код.

from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains
from webdriver_manager.chrome import ChromeDriverManager
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.common.keys import Keys

options = Options()
options.headless = True

browser = webdriver.Chrome(ChromeDriverManager().install(), chrome_options=options)
browser.get("https://www.365chess.com/analysis_board.php")

browser.implicitly_wait(5); fen = browser.find_element_by_id('fen_position').get_property("value")
print(fen)

Счастливого кодирования :)

2022 WebDevInsider