首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法在Salesforce中文版上单击中文linkText

无法在Salesforce中文版上单击中文linkText
EN

Stack Overflow用户
提问于 2014-06-14 21:54:16
回答 2查看 182关注 0票数 0

我只想去中国的销售部。并使用UTF单击产品linkbyText。我该怎么做呢?当我通过我的方法做的时候,我得到了一个例外。

代码语言:javascript
复制
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

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-06-15 06:07:47

如果我在字符串中直接使用汉字,它会很好地工作。

代码语言:javascript
复制
driver.findElement(By.linkText("解决方案")).click();

或者使用XPath:

代码语言:javascript
复制
driver.findElement(By.xpath(".//a[text()='解决方案']")).click();

但是,最好的方法是匹配href属性,而不是文本。

代码语言:javascript
复制
driver.findElement(By.xpath(".//a[@href='/cn/solutions/']")).click(); // XPath version
driver.findElement(By.cssSelector("a[href='/cn/solutions/']")).click(); // CSS selector version
票数 1
EN

Stack Overflow用户

发布于 2014-06-15 13:51:12

链接文本方法使用href值寻找元素是一种常见的误解。相反,它只需要链接的文本部分,这是可见的,在你的例子中是中文文本。

代码语言:javascript
复制
driver.findElement(By.linkText("解决方案")).click();

如果它的某些部分是varible的,则可以使用By.PartialLinkText方法将链接文本的常量部分作为参数传递。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24224678

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档