我希望你能为我的问题找到解决方案。
我尝试测试的页面(我在公司部署了一个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();
}
}
}
答案 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搜索。
感谢
答案 2 :(得分:-1)
以下XPath应该有效:
//div[@title='Next page']/img