首页 > 解决方案 > 如何使用 Selenium 和 Java 在 https://www.phptravels.net/home 的聊天机器人表单输入字段中输入文本

问题描述

import java.util.List;
import java.util.concurrent.TimeUnit;

import org.openqa.selenium.By;
import org.openqa.selenium.Keys;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;


public class Bot {

    /**
     * @param args
     * @throws InterruptedException 
     */
    public static void main(String[] args) throws InterruptedException {
        // TODO Auto-generated method stub
        
        WebDriver driver;
        String baseURL = "https://www.phptravels.net/";
        System.setProperty("webdriver.chrome.driver","/home/khawar/workspace/MyTest/chromedriver");
        driver = new ChromeDriver();
        driver.manage().window().maximize();
        driver.manage().deleteAllCookies();
        driver.manage().timeouts().implicitlyWait(100, TimeUnit.SECONDS);
        driver.manage().timeouts().implicitlyWait(100, TimeUnit.SECONDS);
        driver.get(baseURL);
        List<WebElement> element = driver.findElements(By.xpath("//iframe[@id = 'chat-widget']"));
        Thread.sleep(5000);
        if(element.size()>0){
            element.get(0).click();
        }
        driver.switchTo().frame(1);
        // Enter Name
        driver.findElement(By.id("name")).sendKeys("reretr");
        // Enter Phone Number
        driver.findElement(By.id("o68vveqb3d_157907312787606648")).sendkeys("1234567");
        // Enter Email
        driver.findElement(By.id("email")).sendKeys("test@gmail.com");
        // Click on button
        driver.findElement(By.xpath("//*[@id='pvtkmhumbra']/div/form/div[7]/button/div/span")).click();

    }

}

当我单击聊天机器人图标时,它会打开。但是我尝试使用 sendkey 输入值,然后它们没有输入到输入字段中。有什么建议吗?我不知道这有什么问题。请让我知道如何为这些字段提供输入?

标签: javaseleniumxpathchatbotwebdriverwait

解决方案


代替

driver.switchTo().frame(1);

利用

driver.switchTo().frame("chat-widget")

然后再试一次。


推荐阅读