我只想去中国的销售部。并使用UTF单击产品linkbyText。我该怎么做呢?当我通过我的方法做的时候,我得到了一个例外。
WebDriver driver = new FirefoxDriver();
driver.get("http://www.salesforce.com/cn/");
driver.findElement(By.linkText("\ufeff\u89e3\u51b3\u65b9\u6848")).click();
System.out.println("finish");错误信息:
线程"main“org.openqa.selenium.NoSuchElementException中的异常:无法找到元素:{”方法“:”链接文本“、”选择器“:”解决方案“}命令持续时间或超时: 1.08秒以获得有关此错误的文档,请访问:element.html
发布于 2014-06-15 06:07:47
如果我在字符串中直接使用汉字,它会很好地工作。
driver.findElement(By.linkText("解决方案")).click();或者使用XPath:
driver.findElement(By.xpath(".//a[text()='解决方案']")).click();但是,最好的方法是匹配href属性,而不是文本。
driver.findElement(By.xpath(".//a[@href='/cn/solutions/']")).click(); // XPath version
driver.findElement(By.cssSelector("a[href='/cn/solutions/']")).click(); // CSS selector version发布于 2014-06-15 13:51:12
链接文本方法使用href值寻找元素是一种常见的误解。相反,它只需要链接的文本部分,这是可见的,在你的例子中是中文文本。
driver.findElement(By.linkText("解决方案")).click();如果它的某些部分是varible的,则可以使用By.PartialLinkText方法将链接文本的常量部分作为参数传递。
https://stackoverflow.com/questions/24224678
复制相似问题