Selenium 获取 Twingly 的文本输入(Java 代码)

Selenium getting text input of Twingly (Java Code)

请检查this website.

的元素

它有一个表单,以及 2 个文本输入和 1 个提交按钮。 我不知道当用户在那边输入一些 url 时实际使用的是这 2 个输入中的哪一个。

但是当我尝试这个(使用 firefoxDriver)来获取元素时:

WebElement textfieldURL = driver.findElement(By.id("ping-url")); // even ping-box not working

结果无法定位元素。

然后我将代码更改为:

driver.switchTo().frame(driver.findElement(By.className("ping-iframe")));
WebElement textfieldURL = driver.findElement(By.id("ping-url")); // even ping-box not working

结果还是找不到元素。 有什么线索吗?

你没有提到你面对的exception。由于您的 input 标签出现在 iframe 下,因此您需要先切换到框架,而不是必须执行操作 -

driver.switchTo().frame(driver.findElement(By.className("ping-iframe"))); 
//or you can use frame index as well
driver.switchTo().frame(0); 

您的元素可用 ID ping-box。尝试以下完整代码 -

System.setProperty("webdriver.gecko.driver","D:/Application/geckodriver.exe");
driver = new FirefoxDriver();
driver.manage().window().maximize();
driver.get("https://www.twingly.com/ping");
driver.manage().timeouts().implicitlyWait(20, TimeUnit.SECONDS);
driver.switchTo().frame(driver.findElement(By.className("ping-iframe")));
driver.findElement(By.id("ping-box")).sendKeys("http://www.google.com");
driver.findElement(By.id("ping-button")).click();

同样适用于我。