如何从用于使用 Selenium 填写表单的 chrome 自动填充框中选择值
Posted
技术标签:
【中文标题】如何从用于使用 Selenium 填写表单的 chrome 自动填充框中选择值【英文标题】:How to select value from chrome autofill box which comes for form filling using Selenium 【发布时间】:2018-09-08 10:16:45 【问题描述】:我想从每当您使用 selenium 填写表单时出现的 Chrome 自动填充建议框中选择值。 我试过 sendkey(Keys.ARROWDOWN) 但它不起作用。 请建议我如何使用 selenium java 实现这一目标。
【问题讨论】:
欢迎来到 Stack Overflow!请参阅:How do I do X? SO 的期望是,提出问题的用户不仅会进行研究以回答他们自己的问题,还会分享研究、代码尝试和结果。这表明您已经花时间尝试帮助自己,它使我们免于重复明显的答案,最重要的是它可以帮助您获得更具体和相关的答案!另见:How to Ask 【参考方案1】:刚刚尝试过,似乎工作正常:
package navi;
import java.awt.AWTException;
import java.awt.Robot;
import java.awt.event.KeyEvent;
import org.junit.After;
import org.junit.AfterClass;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.chrome.ChromeOptions;
import org.openqa.selenium.support.ui.ExpectedConditions;
import org.openqa.selenium.support.ui.WebDriverWait;
public class Monika
private static WebDriver driver;
WebDriverWait wait5s = new WebDriverWait(driver,5);
@BeforeClass
public static void setUpClass()
System.setProperty("webdriver.chrome.driver", "C:\\Users\\pburgr\\Desktop\\chromedriver\\chromedriver.exe");
ChromeOptions options = new ChromeOptions();
options.addArguments("user-data-dir=C:\\Users\\pburgr\\AppData\\Local\\Google\\Chrome\\User Data");
driver = new ChromeDriver(options);
driver.manage().window().maximize();
@Before
public void setUp()
@After
public void tearDown()
@AfterClass
public static void tearDownClass() driver.close();driver.quit();
@Test
public void autofill_first_value () throws InterruptedException, AWTException
driver.get("https://www.google.com/");
WebElement fld_search = wait5s.until(ExpectedConditions.elementToBeClickable(By.id("lst-ib")));
fld_search.click();
fld_search.sendKeys("french");
Robot rob = new Robot();
rob.keyPress(KeyEvent.VK_DOWN);
rob.keyRelease(KeyEvent.VK_DOWN);
Thread.sleep(1000);
String foo1 = driver.findElement(By.xpath("//*[@id=\"sbse0\"]/div[2]/b")).getText();
fld_search.sendKeys(" " + foo1);
Thread.sleep(5000);
// hit the search button...
【讨论】:
非常感谢,机器人 rob = new Robot(); rob.keyPress(KeyEvent.VK_DOWN); rob.keyRelease(KeyEvent.VK_DOWN);线程.sleep(1000);为我工作。以上是关于如何从用于使用 Selenium 填写表单的 chrome 自动填充框中选择值的主要内容,如果未能解决你的问题,请参考以下文章
使用 selenium 和 webdriver (chrome) python OSX 在 Instagram 中填写登录表单