#javascript #selenium-webdriver #element #setattribute #execute-script
#javascript #selenium-webdriver #элемент #setattribute #выполнить-скрипт
Вопрос:
Я создаю средство проверки запасов, и мне нужно ввести почтовый индекс в текстовое поле на https://www.argos.co.uk/basket , но, похоже, наткнулся на скрытый элемент, для которого обычный метод sendkeys возвращает исключение ElementNotInteractableException . Поэтому я попытался использовать execute_script с setAttribute, который выполняется без ошибок, но все равно не заполняет текстовое поле.
from selenium import webdriver as wd
import chromedriver_binary
wd = wd.Chrome()
wd.implicitly_wait(5)
wd.get("https://www.argos.co.uk/search/ps5/category:824671/")
accept_cookies = wd.find_element_by_xpath('//*[@id="consent_prompt_submit"]')
accept_cookies.click()
add_to_cart_button = wd.find_element_by_xpath('//*[@id="findability"]/div/div[7]/div/div[5]/div[5]/div[3]/div/div/div[2]/button')
add_to_cart_button.click()
reject_insurance = wd.find_element_by_xpath('//*[@id="findability"]/div/div[3]/div/div/div[1]/footer/div/div/a')
reject_insurance.click()
wd.execute_script('document.querySelector("#basket-FulfilmentSelectorForm").setAttribute("value", "ABC123")')
Интересно, что с элементом кнопки «доставка» можно взаимодействовать следующим образом:
wd.execute_script('document.querySelector("#basket-FulfilmentSelectorForm-deliverButton").click()')
Любая помощь будет очень признательна.