Selenium Java没有找到元素和/或无法点击

时间:2017-07-20 09:42:43

标签: java selenium internet-explorer xpath webdriver

我希望你能为我的问题找到解决方案。

我尝试测试的页面(我在公司部署了一个ARender,我需要对其进行测试):http://arender.fr/ARender/

我用来点击下一页的xpath(由FireBug提供,我试图使用其他的但做同样的事情): //*[@id='id_#_0.7290579307692522']/tbody/tr/td[2]/div/img

我尝试了很多东西而且我真的找不到解决方案,我已经尝试过让Javascript执行者点击它......

Java代码:

package firstPackage;

import java.io.File;
import java.io.IOException;
import java.util.*;
import java.util.NoSuchElementException;
import java.util.concurrent.TimeUnit;

import firstPackage.Props;
import firstPackage.methods;
import firstPackage.PropTech;

import org.openqa.selenium.support.ui.ExpectedConditions;
import org.openqa.selenium.support.ui.WebDriverWait;
import org.junit.*;
import org.openqa.selenium.WebDriver;
import static org.junit.Assert.*;
import static org.hamcrest.CoreMatchers.*;
import org.openqa.selenium.*;
import org.openqa.selenium.ie.InternetExplorerDriver;
import org.openqa.selenium.ie.InternetExplorerDriverLogLevel;
import org.openqa.selenium.ie.InternetExplorerDriverService;
import org.openqa.selenium.support.ui.Select;

public class TestSelenium {

  private  WebDriver driver;
  protected static InternetExplorerDriverService service;
  private StringBuffer verificationErrors = new StringBuffer();

    @Before
    public  void setUp() 
    {   
        System.out.println("*******************");
        System.out.println("launching IE browser");
        System.setProperty("webdriver.ie.driver", PropTech.driverPath+"IEDriverServer.exe");
        driver = new InternetExplorerDriver();
        driver.manage().window().maximize();    
    }

  @Test
  public void test() throws Exception 
  {
      driver.navigate().to("arender.fr" + "/ARender/");
      Thread.sleep(15000);
      driver.findElement(By.xpath("//div[@title='Next page']/img")).click();
  }

  @After
    public  void tearDown() 
    {
        if(driver!=null) 
        {
            System.out.println("Closing IE browser");
            driver.quit();
            //Kill les process
            try {
                Runtime.getRuntime().exec("taskkill /F /IM IEDriverServer.exe");
            Runtime.getRuntime().exec("taskkill /F /IM iexplore.exe");
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

3 个答案:

答案 0 :(得分:0)

可能会在页面上加载dinamically,尝试使用WebdriverWait。请注意xpath,我已经改变了一点。检查IE中的执行

WebDriverWait wait = new WebDriverWait(driver, 30);

driver.get("http://arender.fr/ARender/");

//Click element after it bacomes clickable
wait.until(ExpectedConditions.elementToBeClickable(By.xpath("//td[div[@title='Next page']]"))).click();

答案 1 :(得分:-1)

似乎您在xpath中使用的ID是动态生成的。 (@ id ='id _#_ 0.7290579307692522')您是否可以确认即使刷新页面后仍然保持不变?

如果没有尝试使用其他一些属性创建xpath或使用xpath whilecard搜索。

Xpath wildcard search

感谢

答案 2 :(得分:-1)

以下XPath应该有效:

//div[@title='Next page']/img