Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/react-native/7.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
如何使用SeleniumWeb驱动程序和java从下拉菜单中选择元素?_Java_Selenium_Selenium Webdriver - Fatal编程技术网

如何使用SeleniumWeb驱动程序和java从下拉菜单中选择元素?

如何使用SeleniumWeb驱动程序和java从下拉菜单中选择元素?,java,selenium,selenium-webdriver,Java,Selenium,Selenium Webdriver,下班 卧铺 驱动 上班 如果您熟悉HTML,您就会知道下拉菜单通常是通过Select标记实现的。Selenium WebDriver提供了一个类来处理此类选择 然而,使用jQuery引导和其他技术开发的较新网站使用span、divs、li和其他标记以不同的方式实现这一点。您的代码也是以这种方式开发的。因此,我们必须遵循以下方法。通常,下拉列表和下拉列表值位于DOM的不同部分。我们必须通过检查页面源代码来正确识别它 单击下拉框并等待下拉值出现 WebElement dropDown = drive


下班
卧铺
驱动
上班

如果您熟悉HTML,您就会知道下拉菜单通常是通过
Select
标记实现的。Selenium WebDriver提供了一个类来处理此类选择

然而,使用jQuery引导和其他技术开发的较新网站使用
span
divs
li
和其他标记以不同的方式实现这一点。您的代码也是以这种方式开发的。因此,我们必须遵循以下方法。通常,下拉列表和下拉列表值位于DOM的不同部分。我们必须通过检查页面源代码来正确识别它

  • 单击下拉框并等待下拉值出现

    WebElement dropDown = driver.findElement(By.className("select-dropdown-icon"));
    dropDown.click();
    
  • 通过单击选择所需的下拉值

    WebElement dropDownValueOffDuty  = driver.findElement(By.xpath("//kt-select-option[@value='off_duty']/div"));
    dropDownValueOffDuty.click();
    

  • 我希望这对您有所帮助。

    给定的html仅显示单词driving。没有任何下拉菜单。你能分享更多关于HTML的细节吗。还有,问题到底出在哪里?我已经编辑了HTML,你能看一下吗。我不熟悉HTML和selenium,因此在访问主下拉菜单时遇到问题,除了选择“下班”、“睡眠者”和“上班”中的任何一个选项外,我还想选择以下任何选项。@mk08您的编辑中缺少一些内容。你可以改为共享URL吗?请检查你编辑的代码。HTML代码从来都不是这样的。你现在可以检查代码@mk08吗
    WebElement dropDownValueOffDuty  = driver.findElement(By.xpath("//kt-select-option[@value='off_duty']/div"));
    dropDownValueOffDuty.click();