Xpath in Selenium

Xpath in Selenium

本文关键字:Selenium in Xpath      更新时间:2024-05-23

我想为以下流编写xpath

  1. 转到au.support.tomtom.com
  2. 单击页脚中的Flag标志
  3. 选择澳大利亚作为国家

到目前为止,我已经尝试过:

driver.get("http://au.support.tomtom.com/");
driver.findElement(By.xpath(".//*[@id='rn_PageFooter_16']/footer/div[3]/button")).click();
driver.findElement(By.xpath("//a[@href='//au.support.tomtom.com/app/answers/list/locale/en_AU']//[@text()='Australia']")).click();

最后一个xpath不工作。我正在使用selenium JavaScript。请帮忙。

我认为是您的xpath造成了问题,而且您的元素在视图中不可点击

以下代码经过测试并适用于我

import java.util.concurrent.TimeUnit;
import org.openqa.selenium.By;
import org.openqa.selenium.JavascriptExecutor;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.testng.annotations.Test;
public class test1 {
@Test
public void chec() throws InterruptedException{
    System.setProperty("webdriver.chrome.driver","C://Temp//imp//chromedriver.exe");
    WebDriver d = new ChromeDriver();
    d.manage().timeouts().implicitlyWait(40,TimeUnit.SECONDS);
    d.get("http://au.support.tomtom.com/");
    d.manage().window().maximize();
    JavascriptExecutor jse = (JavascriptExecutor)d; 
    d.findElement(By.xpath(".//*[@id='rn_PageFooter_16']/footer/div[3]/button")).click();
    Thread.sleep(5000);
    jse.executeScript("scroll(0, -250);");
    d.findElement(By.xpath("html/body/div[4]/div/div[2]/footer/div[2]/div/div/div/div[1]/div/div[1]/div/div[2]/ul/li[1]/a")).click();

}
}

为什么要使用XPath?使用CSS选择器可以更容易地找到澳大利亚国旗:

li .tt-flag-image.australia

完整代码:

driver.findElement(By.cssSelector("li .tt-flag-image.australia")).click();