2014-03-06 55 views
0

我的代码如下,我有'生产计划'的问题,我需要能够点击生产计划链接,但它不工作。菜单点击不能使用硒webdriver通过Java

List<WebElement> ddOpts = driver.findElements(By.xpath("html/body/div[4]")); 
    ArrayList<String> links = new ArrayList<String>(); 
    for(WebElement we : ddOpts) { 
    //System.out.println(we.getText()); 
     links.add(we.getText()); 
    System.out.println(links); 

    if(we.getText().contains("Production Plan")) { 
     we.sendKeys("Production Plan"); 
     we.click(); 

    } 

回答

0

您在ddOpts列表中的WebElements不是锚标签,但divs。我不知道页面如何显示,但似乎你可能会想到另一个xpath。喜欢的东西:

List<WebElement> ddOpts = driver.findElements(By.xpath("html/body/div/a[4]")); 

List<WebElement> ddOpts = driver.findElements(By.xpath("html/body/div[4]/a")); 

或者,也许,如果它是一个选择选项,使用选择对象

Select mySelect = new Select(driver.findElements(By.xpath("html/body/div[4]"))); 
mySelect.selectByVisibleText("Production Plan"); 

看到这个问题的答案: How to select an option from a drop-down using Selenium WebDriver with Java?

0

我不明白你为什么试图去sendKeys()

,但如果你想点击一个链接,下面的工作:

WebElement link = driver.findElement(By.PartialLinkText("Production Plan")); 
link.click(); 

您也可以尝试用明确的等待:

new WebDriverWait(driver, 30).until(ExpectedConditions.visibilityOfElementLocated(By.PartialLinkText("Production Plan"))).click(); 
相关问题