Войдите в скрытое текстовое поле и нажмите Enter (Selenium, Python) - PullRequest
1 голос
/ 23 апреля 2019

Я пытаюсь ввести текстовую строку "L62T18H029-P3215" в поле ввода поиска на этом сайте https://lamerfashion.com и нажать Enter.

Я попытался выполнить какое-то javascript, чтобы изменить значение скрытого элемента, однако я не могу заставить Selenium отправить клавишу ВВОД для отправки.

driver = webdriver.Chrome(ChromeDriver)

driver.get("https://lamerfashion.com")

element = WebDriverWait(driver,20).until(EC.presence_of_element_located((By.XPATH, '//a[@class="search-icon"]')))

element.click()

e = driver.execute_script("return document.getElementsByName('type')[0].value;")

print(e)

driver.execute_script("document.getElementsByName('type')[0].value='L62T18H029-P3215';")

e = driver.execute_script("return document.getElementsByName('type')[0].value;")

print(e)

Выход:

product

L62T18H029-P3215

Ответы [ 3 ]

2 голосов
/ 23 апреля 2019

Я запускаю скрипт в Java, может быть, это поможет вам ... Попробуйте это (для справки)

WebDriver driver = new ChromeDriver();
driver.manage().window().maximize();
driver.get("https://lamerfashion.com");

WebElement newSearch = driver.findElement(By.className("search-icon")););
newSearch.click();
Thread.sleep(1000);
WebElement searchpro = driver.findElement(By.xpath("//*[@id=\"navbar\"]/div/ul[2]/li[1]/form/input[2]"));

searchpro.sendKeys("L62T18H029-P3215");
searchpro.sendKeys(Keys.ENTER);
1 голос
/ 23 апреля 2019

Я не вижу здесь никакой необходимости в JS.
Вы можете просто пойти дальше с send_keys методом, который уже присутствует в селене.

Код:

driver = webdriver.Chrome(executable_path = r'chromedriverpath')
wait = WebDriverWait(driver,10)

driver.maximize_window()

driver.get("https://lamerfashion.com")

wait = WebDriverWait(driver, 10)

wait.until(EC.element_to_be_clickable((By.CSS_SELECTOR, 'a.search-icon'))).click()
wait.until(EC.element_to_be_clickable((By.XPATH, "//a[@class='search-icon']/following-sibling::form/input[@name='q']"))).send_keys("L62T18H029-P3215")  

импорт:

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC 
0 голосов
/ 23 апреля 2019

При просмотре веб-сайта есть два входа, и один с скрытым может на самом деле не быть тем, который вам нужен.

Попробуйте то же самое, но для имени "q"

Кроме того, попробуйте использовать команду Selenium

element.send_keys('text_you_want') - этого должно быть достаточно вместо JS

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...