#python #selenium #selenium-webdriver
#python #селен #selenium-webdriver
Вопрос:
Я хочу использовать selenium для оценки точности шахматных ходов в моем наборе данных игр для ИИ. Пока я могу получить доступ к панели оценки, но не к FEN (он возвращает пустую строку). Есть ли какой-нибудь способ получить доступ к FEN на этом сайте.
Я хочу захватить это: rnbqkbnr/ppp1pppp/8/3p4/4P3/8/PPPP1PPP/RNBQKBNR w KQkq d6 0 2
Это HTML текстового поля:
<input type="text" readonly="" class="text" id="fen_position" name="fen_position" value="" style="width:350px;font-size: 0.7em !important;padding: 3px 6px !important;">
Вот соответствующая часть моего кода:
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').text
print(fen)
Комментарии:
1. Я думаю, что это также показывает это в скрипте. Однако я не уверен, как получить к нему доступ таким образом, используя selenium
Ответ №1:
Таким образом, FEN является <input>
для входных данных, значение сохраняется как «значение» в свойствах, которые вы можете использовать .get_property(«значение») для доступа к нему. Вот рабочий код.
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)
Счастливого кодирования 🙂