【发布时间】:2017-11-03 05:48:38
【问题描述】:
我为此绞尽脑汁已经有一段时间了,但似乎无法弄清楚。我希望在我的雅虎帐户中点击一封电子邮件。如果我指定我要查找的内容的值,它可以在第一封电子邮件中查找。我需要能够根据主题找到任何电子邮件。 如果第一个主题包含“POST/EDIT/DELETE: *2007 NO DAMAGE TOYOTA CAMRY XLE”,则可以单击该主题
wait.until(ExpectedConditions.elementToBeClickable(By.xpath("//*[contains(text(),'POST/EDIT/DELETE: *2007 NO DAMAGE TOYOTA CAMRY XLE')]"))).click();
另一方面,如果我将其设为变量,则它不会:
String emailtitle = "POST/EDIT/DELETE: "+ "*2007 NO DAMAGE TOYOTA CAMRY XLE";//Build email string
System.out.println("Email Title is: "+ emailtitle);
wait.until(ExpectedConditions.elementToBeClickable(By.xpath("//*[contains(text(),'" + emailtitle + "')]"))).click();
我在哪里搜索:
<div class="subj" role="gridcell" id="yui_3_16_0_ym19_1_1509685997190_1725"> <span dir="" class="subject " title="POST/EDIT/DELETE: *2007 NO DAMAGE TOYOTA CAMRY XLE ( cars & trucks - by owner)" id="yui_3_16_0_ym19_1_1509685997190_1724"> POST/EDIT/DELETE: *2007 NO DAMAGE TOYOTA CAMRY XLE ( cars & trucks - by owner) </span> <span class="thread-snippet" role="gridcell" dir="" id="yui_3_16_0_ym19_1_1509685997190_1754"> IMPORTANT - FURTHER ACTION IS REQUIRED TO COMPLETE YOUR REQUEST !!! FOLLOW THE WEB ADDRESS BELOW TO: PUBLISH YOUR AD EDIT (OR CONFIRM AN EDIT TO) YOUR AD VERIFY YOUR EMAIL ADDRESS DELETE YOUR AD If not clickable, please copy and paste the address to your browser: THIS LINK IS A PASSWORD. DO NOT SHARE IT - anyone who has a copy of this link can edit or delete your posting. link PLEASE KEEP THIS EMAIL - you may need it to manage your posting! Your posting </span> </div>
理想情况下,我希望能够根据电子邮件标题更改电子邮件标题。所以使用变量是必须的。但是由于某种原因,当我将它用作变量时,它不会返回值。发生这种情况有什么原因吗?
【问题讨论】:
-
你的第一个代码块有两次
POST/EDIT/DELETE:,所以这根本不应该工作。 -
是的,我的要求是根据邮件的标题点击邮件。
-
不要把emailtitle放在双引号下,因为它是字符串,不带引号的保留它并检查By.xpath("//*[contains(text(),emailtitle)]"))跨度>
-
@ShoaibAkhtar 这没有任何意义。
emailtitle是 Java 局部变量。 XPath 引擎无权访问它。 -
@Andreas 它应该可以工作。我想我之前已经尝试过了。让他试试这个 By.xpath("//*[contains(text(),emailtitle)]"))
标签: java selenium firefox xpath