使用硒给java中的隐藏元素提供错误

卡南

当我选择隐藏值时,其显示错误为:

线程“主”中的异常org.openqa.selenium.NoSuchElementException:无法找到元素:{“方法”:“部分链接文本”,“选择器”:“车辆制造”}

这是我的代码:

package section5.advWays.locatingObjects;
    import org.openqa.selenium.By;
    import org.openqa.selenium.WebDriver;
    import org.openqa.selenium.firefox.FirefoxDriver;
    import org.openqa.selenium.support.ui.Select;   

public class CusXPathUsingAtt1 {
    public static void main(String[] args) throws InterruptedException {
        // TODO Auto-generated method stub
        WebDriver wd = new FirefoxDriver();
        wd.manage().window().maximize();
        Thread.sleep(5000);         wd.get("http://www.tirerack.com/content/tirerack/desktop/en/homepage.html");
        Select SelectMakedropdown = new Select(wd.findElement(By.id("vehicle-make")));      
        SelectMakedropdown.selectByVisibleText("BMW");
        Select YearSelectDropdown = new Select(wd.findElement(By.id("vehicle-year")));
        YearSelectDropdown.selectByVisibleText("2011");
        Select VehicleSelectDropdown = new Select(wd.findElement(By.id("vehicle-model")));
        VehicleSelectDropdown.selectByVisibleText("228i xDrive Coupe");
    }
    }

如何使用Selenium WebDriver选择那些下拉菜单?

普拉泰克

有两件事:

  1. 我发现您首先需要单击一个元素,否则将无法打开“选择”菜单。因此,在我的代码中,我首先单击该元素以启用选择菜单。
  2. 还有一些尚不可用的元素。举例来说,除非输入了“ Make”,否则无法启用Year。

请参见下面的代码:

WebDriver driver= new FirefoxDriver();
driver.get("http://www.tirerack.com/content/tirerack/desktop/en/homepage.html");
WebDriverWait wait = new WebDriverWait(driver, 30);

wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//div[contains(text(),'Select Make')]")));
driver.findElement(By.xpath("//div[contains(text(),'Select Make')]")).click();
wait.until(ExpectedConditions.visibilityOfElementLocated(By.id("vehicle-make")));
Select SelectMakedropdown = new Select(driver.findElement(By.id("vehicle-make")));      
SelectMakedropdown.selectByVisibleText("BMW");

wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//div[contains(text(),'Select Year')]")));
driver.findElement(By.xpath("//div[contains(text(),'Select Year')]")).click();
wait.until(ExpectedConditions.visibilityOfElementLocated(By.id("vehicle-year")));
Select YearSelectDropdown = new Select(driver.findElement(By.id("vehicle-year")));
YearSelectDropdown.selectByVisibleText("2011");

wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//div[contains(text(),'Select Model')]")));
driver.findElement(By.xpath("//div[contains(text(),'Select Model')]")).click();
wait.until(ExpectedConditions.visibilityOfElementLocated(By.id("vehicle-model")));
Select VehicleSelectDropdown = new Select(driver.findElement(By.id("vehicle-model")));
VehicleSelectDropdown.selectByVisibleText("128i Cabriolet Base Model");

driver.quit();

Firefox更新:

我做了很多尝试,但是我仍然无法确定为什么选择不能在Firefox中运行。但是我仍然设法解决需要解决的问题。在这里,我使用的点击次数较少,而您的应用程序支持的功能更多。

WebDriver driver= new FirefoxDriver();
driver.get("http://www.tirerack.com/content/tirerack/desktop/en/homepage.html");
WebDriverWait wait = new WebDriverWait(driver, 30);
JavascriptExecutor executor = (JavascriptExecutor) driver;

wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//div[contains(text(),'Select Make')]")));
WebElement we1 = driver.findElement(By.xpath("//div[contains(text(),'Select Make')]"));
executor.executeScript("arguments[0].click();", we1);
wait.until(ExpectedConditions.visibilityOfElementLocated(By.id("vehicle-make")));
WebElement SelectMakedropdown = driver.findElement(By.id("vehicle-make"));      
SelectMakedropdown.sendKeys("BMW");
SelectMakedropdown.sendKeys(Keys.ENTER);
Thread.sleep(1000);

wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//div[contains(text(),'Select Year')]")));
WebElement we2 = driver.findElement(By.xpath("//div[contains(text(),'Select Year')]"));
executor.executeScript("arguments[0].click();", we2);
wait.until(ExpectedConditions.visibilityOfElementLocated(By.id("vehicle-year")));
WebElement YearSelectDropdown = driver.findElement(By.id("vehicle-year"));
YearSelectDropdown.sendKeys("2011");
YearSelectDropdown.sendKeys(Keys.ENTER);
Thread.sleep(1000);

wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//div[contains(text(),'Select Model')]")));
WebElement we3 = driver.findElement(By.xpath("//div[contains(text(),'Select Model')]"));
executor.executeScript("arguments[0].click();", we3);
wait.until(ExpectedConditions.visibilityOfElementLocated(By.id("vehicle-model")));
WebElement VehicleSelectDropdown = driver.findElement(By.id("vehicle-model"));
VehicleSelectDropdown.sendKeys("128i Cabriolet Base Model");
VehicleSelectDropdown.sendKeys(Keys.ENTER);

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

提取硒中的隐藏元素

来自分类Dev

使用碎片(和硒)中的隐藏选择元素

来自分类Dev

使用碎片(和硒)中的隐藏选择元素

来自分类Dev

硒隐藏元素:<select>中的隐藏<option>元素

来自分类Dev

python硒无法单击下拉菜单中的隐藏元素

来自分类Dev

硒中是否有隐藏元素的检查方法

来自分类Dev

无法使用硒从网站中查找元素

来自分类Dev

简单的Java代码中的硒错误

来自分类Dev

硒中的Java空点错误

来自分类Dev

使用Java取消隐藏元素

来自分类Dev

如何使用硒读取python中的隐藏文本?

来自分类Dev

无法在C#中使用硒定位元素错误

来自分类Dev

在硒中查找元素

来自分类Dev

硒发现隐藏元素C#

来自分类Dev

水豚与硒:无法单击隐藏的元素

来自分类Dev

硒无法访问隐藏的元素

来自分类Dev

将值写入隐藏元素硒

来自分类Dev

水豚与硒:无法单击隐藏的元素

来自分类Dev

Td元素的硒投掷错误

来自分类Dev

遍历Java中的所有HTML元素(硒测试)

来自分类Dev

我试图在Java中通过硒找到元素href

来自分类Dev

硒提取通过Java中的文本找到的元素的ID

来自分类Dev

使用IE 10中的硒元素单击无法正常工作

来自分类Dev

使用python硒中的按钮单击元素问题

来自分类Dev

如何使用硒检查数字是否在Web元素中

来自分类Dev

如何使用python在硒中按颜色查找元素

来自分类Dev

如何使用硒在ASP源中查找元素?

来自分类Dev

使用CSS在div中隐藏div元素

来自分类Dev

如何使用Java访问硒中具有相同类名的第二个元素