我正在尝试在此网站https://lamerfashion.com上的搜索输入框中输入文本字符串“ L62T18H029-P3215
”,然后按Enter。
我试图执行一些javascript
来更改隐藏元素的值,但是我无法让Selenium
发送ENTER键来提交。
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
答案 0 :(得分:2)
我在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 :(得分:1)
我在这里看不到需要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
答案 2 :(得分:0)
看到该网站,有两个输入,而其中一个带有 隐藏 的输入实际上可能不是您所需要的。
尝试相同的操作,但是名称为“ q”
此外,尝试使用Selenium命令
element.send_keys('text_you_want')
-应该足以代替JS