Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 无法在selenium中的列表中存储通过搜索文本字段生成的下拉列表项_Java_Selenium_Automation - Fatal编程技术网

Java 无法在selenium中的列表中存储通过搜索文本字段生成的下拉列表项

Java 无法在selenium中的列表中存储通过搜索文本字段生成的下拉列表项,java,selenium,automation,Java,Selenium,Automation,我已经通过youtube搜索文本字段中的发送键发送了一个可搜索的关键字。但当下拉列表出现在SearchTextField下面时,我无法在列表中存储下拉列表项并单击其中任何一项。由于打印列表大小,我得到“0” package SomeBasicAutomationPractice; import java.util.List; import org.apache.*; import org.openqa.selenium.By; import org.openqa.selenium.WebDriv

我已经通过youtube搜索文本字段中的发送键发送了一个可搜索的关键字。但当下拉列表出现在SearchTextField下面时,我无法在列表中存储下拉列表项并单击其中任何一项。由于打印列表大小,我得到“0”

package SomeBasicAutomationPractice;
import java.util.List;
import org.apache.*;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;

public class Practice_dynamic_xpath {

    public static void main(String[] args) throws InterruptedException {

 System.setProperty("webdriver.chrome.driver", "G:\\VivekAutomationPractice\\src\\drivers\\chromedriver.exe");
        WebDriver driver= new ChromeDriver();
        driver.get("https://www.youtube.com/");
        driver.manage().window().maximize();
        Thread.sleep(5000);
        driver.findElement(By.xpath("//input[@id='search']")).sendKeys("selenium");
     List<WebElement> li=driver.findElements(By.xpath("//*[starts-with(@id,'sbse')]"));
    System.out.println(li.size());
    li.get(2).click();
        }
        }
打包一些基本的自动化实践;
导入java.util.List;
导入org.apache.*;
导入org.openqa.selenium.By;
导入org.openqa.selenium.WebDriver;
导入org.openqa.selenium.WebElement;
导入org.openqa.selenium.chrome.ChromeDriver;
公共课堂练习\u动态\u xpath{
公共静态void main(字符串[]args)引发InterruptedException{
System.setProperty(“webdriver.chrome.driver”,“G:\\VivekAutomationPractice\\src\\drivers\\chromedriver.exe”);
WebDriver驱动程序=新的ChromeDriver();
驱动程序。获取(“https://www.youtube.com/");
driver.manage().window().maximize();
睡眠(5000);
findElement(By.xpath(“//input[@id='search'])).sendKeys(“selenium”);
List li=driver.findElements(By.xpath(“//*[以(@id,'sbse')]开头]);
System.out.println(li.size());
li.get(2).单击();
}
}
你能试试这个吗 driver.findElements(By.cssSelector(“#results ol#search results>li h3>a”)

你能试试这个吗
driver.findElements(By.cssSelector(“#results ol#search results>li h3>a”)

请尝试下面的代码,我的朋友。如果此代码对您有帮助,那么我请求您将其标记为已接受。这就是Stackoverflow的工作原理我的朋友:)

静态{
System.setProperty(“webdriver.chrome.driver”,“C:\\Users\\Sangeeta Laptop\\Downloads\\chromedriver\u win32(3)\\chromedriver.exe”);
}
WebDriver驱动程序=新的ChromeDriver();
字符串urlBase=”https://www.youtube.com";
@试验前
测试前公共无效(){
driver.get(urlBase);
driver.manage().window().maximize();
}
@试验
public void test()引发InterruptedException{
driver.manage().window().maximize();
driver.manage().deleteAllCookies();
driver.manage().timeout().pageLoadTimeout(40,TimeUnit.SECONDS);
driver.manage().timeouts().implicitlyWait(30,TimeUnit.SECONDS);
findElement(By.xpath(“//input[@id='search'])).sendKeys(“selenium”);
睡眠(5000);
findElement(By.xpath(“//input[@id='search'])).sendKeys(Keys.SPACE);
睡眠(5000);
List li=driver.findElements(By.xpath(“//*[以(@id,'sbse')]开头]);
睡眠(5000);
System.out.println(li.size());
}
@org.testng.annotations.postest
公开无效后验(){
driver.quit();
}
}

请尝试下面的代码,我的朋友。如果此代码对您有帮助,那么我请求您将其标记为已接受。这就是Stackoverflow的工作原理我的朋友:)

静态{
System.setProperty(“webdriver.chrome.driver”,“C:\\Users\\Sangeeta Laptop\\Downloads\\chromedriver\u win32(3)\\chromedriver.exe”);
}
WebDriver驱动程序=新的ChromeDriver();
字符串urlBase=”https://www.youtube.com";
@试验前
测试前公共无效(){
driver.get(urlBase);
driver.manage().window().maximize();
}
@试验
public void test()引发InterruptedException{
driver.manage().window().maximize();
driver.manage().deleteAllCookies();
driver.manage().timeout().pageLoadTimeout(40,TimeUnit.SECONDS);
driver.manage().timeouts().implicitlyWait(30,TimeUnit.SECONDS);
findElement(By.xpath(“//input[@id='search'])).sendKeys(“selenium”);
睡眠(5000);
findElement(By.xpath(“//input[@id='search'])).sendKeys(Keys.SPACE);
睡眠(5000);
List li=driver.findElements(By.xpath(“//*[以(@id,'sbse')]开头]);
睡眠(5000);
System.out.println(li.size());
}
@org.testng.annotations.postest
公开无效后验(){
driver.quit();
}
}

那么让我分享一下项目代码。请稍等。好的,我会等的,谢谢。请查看更新的评论。我已经在那里添加了代码。如果您面临任何问题,请告诉我。您的系统中必须安装java 1.8或更新版本,才能使用第一个静态块。如果没有,请删除静态块并将代码放入BeforeTest:)我是自动化方面的初学者,所以我不知道什么是testng注释,我已经复制粘贴了@Test block中的代码以替换为旧代码,但仍然没有成功。那么让我共享项目代码。请稍等。好的,我会等的,谢谢。请查看更新的评论。我已经在那里添加了代码。如果您面临任何问题,请告诉我。您的系统中必须安装java 1.8或更新版本,才能使用第一个静态块。如果没有,请删除静态块并将代码放入BeforeTest:)我是自动化方面的初学者,所以我不知道什么是testng注释,我已经复制粘贴了@Test block中的代码以替换为旧代码,但仍然没有成功。您能让您的答案更简单一些吗,你能不能把你的答案说得简单一点,因为我不懂。谢谢。
    static{
        System.setProperty("webdriver.chrome.driver", "C:\\Users\\Sangeeta-Laptop\\Downloads\\chromedriver_win32 (3)\\chromedriver.exe");
    }
    WebDriver driver = new ChromeDriver();

    String urlBase = "https://www.youtube.com";

    @BeforeTest
    public void beforeTest() {
        driver.get(urlBase);
        driver.manage().window().maximize();
    }


    @Test
    public void test() throws InterruptedException {
         driver.manage().window().maximize();
         driver.manage().deleteAllCookies();
         driver.manage().timeouts().pageLoadTimeout(40, TimeUnit.SECONDS);
         driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
         driver.findElement(By.xpath("//input[@id='search']")).sendKeys("selenium");
          Thread.sleep(5000);
driver.findElement(By.xpath("//input[@id='search']")).sendKeys(Keys.SPACE);
         Thread.sleep(5000);
         List<WebElement> li=driver.findElements(By.xpath("//*[starts-with(@id,'sbse')]"));
         Thread.sleep(5000);
        System.out.println(li.size());

    }

    @org.testng.annotations.AfterTest
    public void AfterTest() {
        driver.quit();
    }
}