当前位置: 首页 > 知识库问答 >
问题:

在Java中使用Selenium从下拉选择随机WebElement

章禄
2023-03-14
driver.findElement(By.id(""uxMiniFinderVoyageSelect_chzn_o_1")
driver.findElement(By.id(""uxMiniFinderVoyageSelect_chzn_o_2")
driver.findElement(By.id(""uxMiniFinderVoyageSelect_chzn_o_3")
driver.findElement(By.id(""uxMiniFinderVoyageSelect_chzn_o_4")
Random random = new Random();
    int x = random.nextInt(250) + 1;
private WebElement cruiseSailing = driver.findElement(By.id("uxMiniFinderVoyageSelect_chzn_o_" + x));
    private WebElement cruiseSailingDropDown = driver.findElement(By.id(Some ID));
    private WebElement errorMessage = driver.findElement(By.xpath("some xpath expression"));
    private WebElement cruiseSailing = driver.findElement(By.id("uxMiniFinderVoyageSelect_chzn_o_" + x));


    cruiseSailingDropDown.click();
    cruiseSailing.click();
    Thread.sleep(2000);
    if(errorMessage .isDisplayed){
    System.out.printLn("Error message is displayed")
    cruiseSailingDropDown.click();
    cruiseSailing.click();
    }else{
    proceed further to the next step

共有1个答案

曹华荣
2023-03-14

它之所以会在失败的情况下再次选择相同的元素,是因为您没有将cruiseSailing值重新分配给新的元素。

我能想到的方法有两种:

>

  • 为“if”块内部的CruiseSiling指定一个新值。您可以在“if”块中执行如下操作。

    cruiseSailing=Driver.FindElement(由.id(“UXMiniFinderVoyageSelect_CHZN_O__”+x));

    cruiseSailingDropDown.click();
    cruiseSailing.click();
    

    对于截图,您可以创建一个方法并在If块中调用它。

    截图代码

    File scrFile = ((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE);
    
     // Now you can do whatever you need to do with it, for example copy somewhere
    FileUtils.copyFile(scrFile, new File("c:\\error\\screenshot.png"));
    

    如果这对你有帮助,请投票。谢谢:)

  •  类似资料:
    • 问题内容: 是selenium的新手,目前正在使用selenium webdriver,我想从下拉列表中选择一个值。id = periodId和选项很多,因为它试图选择“最近52周”。 这是HTML代码: 请为我建议一些单击下拉菜单的方法。 我尝试使用上面的示例行,但遇到诸如Element当前不可见等错误,因此可能无法与Command duration或timeout交互:32毫秒下拉列表值为jq

    • 问题内容: 我想从下拉选项中选择一个值。html如下: 我尝试如下: 怎么了 请帮我! 问题答案: 阿德里安Ratnapala是正确的,也是我会选择过,所以你可以尝试以下方法: 要么 要么 您可以使用: 单击此处以获取更多信息。

    • 我想从下面的列表中选择一个使用selenium的选项: 这里 但问题是没有列表可供选择。 在此输入图像说明 我到目前为止的代码: 需要帮助!!

    • 我是硒的新手,我试图从下拉列表中选择一个选项。下拉列表的超文本标记语言如下: WebElement的是: 我已经尝试了几乎所有的方法,我可以在互联网上找到,但没有任何效果。我试图使用类,包装了,但它抛出了一个异常。 我试图丢失列表中的所有选项,但在这种情况下得到了异常应该有标签,但它有。我需要使用作为findelements的标识符。 请帮我解决这个问题。

    • 我真的很难从一个网站上的下拉菜单中选择一个项目。HTML的代码如下所示: 我已经尝试了我能想到的一切,并在StackOverflow上找到了!我注意到这似乎可以用来选择实际的下拉框: 但我认为这是可行的,因为代码运行时不会出现任何错误。但是,我仍然无法从下拉菜单中选择任何内容。我试过: 通过xpath/name/id/tag/value/text查找元素 选择\u mp。按值选择值('2') 选择

    • 下面给出了一段表示下拉列表的代码。我需要在此下拉列表中选择日期值,由<代码> 以下方法无效 1。)使用“按导入组织选择”选择此值。openqa。硒。支持用户界面。选择 控制台显示: 元素应该是“选择”,但应该是“选项” 2.)首先单击下拉列表以显示要选择的选项,然后单击该选项。 控制台显示: 调试元素缺少可访问的名称:id:类型,标记名:选择,类名:文本输入ng原始ng未触及ng有效ng范围 3.