Html 用<;href>;及<;a>;标签

Html 用<;href>;及<;a>;标签,html,ruby,selenium,safari,automation,Html,Ruby,Selenium,Safari,Automation,我试图点击一个“立即验证”按钮,该按钮嵌套在标签和标签中。我无法直接导航到href链接,因为每次链接都有不同的令牌要激活,这就是为什么我继续点击它 PFB html 此外,iframe中该电子邮件正文的页面源如下所示: <div class="col-lg-12 col-md-12 col-sm-12" style="height:800px;clear:both;margin-bottom: 20px;padding-bottom: 20px;">

我试图点击一个“立即验证”按钮,该按钮嵌套在标签和标签中。我无法直接导航到href链接,因为每次链接都有不同的令牌要激活,这就是为什么我继续点击它

PFB html

此外,iframe中该电子邮件正文的页面源如下所示:

<div class="col-lg-12 col-md-12 col-sm-12" style="height:800px;clear:both;margin-bottom: 20px;padding-bottom: 20px;">
                      <iframe id="publicshowmaildivcontent" width="100%" height="100%" style="border: 0;">
                          EMAIL BODY
                      </iframe>
                  </div>

电子邮件正文

您可以在您的案例中使用以下xpath:

driver.findElement(By.xpath("//*[contains(text(),'Verify Now')]")).click();

希望对您有所帮助。

修改了答案:

@Selenium_driver.switch_to.frame("publicshowmaildivcontent") 
@Selenium_driver.find_element(:xpath, "//a[contains(text(), 'Verify Now')]").click
@Selenium_driver.switch_to.frame("publicshowmaildivcontent") 
@Selenium_driver.find_element(:xpath, "//a[contains(@href, 'http://click1.clickrouter.com/')]").click
@Selenium_driver.switch_to.frame("publicshowmaildivcontent") 

@element = @Selenium_driver.find_element(:xpath, "//a[contains(@href, 'http://click1.clickrouter.com/')]");

@Selenium_driver.executeScript("arguments[0].click();",@element);
或者您可以这样做:

@Selenium_driver.switch_to.frame("publicshowmaildivcontent") 
@Selenium_driver.find_element(:xpath, "//a[contains(text(), 'Verify Now')]").click
@Selenium_driver.switch_to.frame("publicshowmaildivcontent") 
@Selenium_driver.find_element(:xpath, "//a[contains(@href, 'http://click1.clickrouter.com/')]").click
@Selenium_driver.switch_to.frame("publicshowmaildivcontent") 

@element = @Selenium_driver.find_element(:xpath, "//a[contains(@href, 'http://click1.clickrouter.com/')]");

@Selenium_driver.executeScript("arguments[0].click();",@element);
//尝试通过javascript单击:

@Selenium_driver.switch_to.frame("publicshowmaildivcontent") 
@Selenium_driver.find_element(:xpath, "//a[contains(text(), 'Verify Now')]").click
@Selenium_driver.switch_to.frame("publicshowmaildivcontent") 
@Selenium_driver.find_element(:xpath, "//a[contains(@href, 'http://click1.clickrouter.com/')]").click
@Selenium_driver.switch_to.frame("publicshowmaildivcontent") 

@element = @Selenium_driver.find_element(:xpath, "//a[contains(@href, 'http://click1.clickrouter.com/')]");

@Selenium_driver.executeScript("arguments[0].click();",@element);

是否有方法使用部分href单击?正在检查。。。。。第二种选择。您所说的第一个也是@RNS建议的,但不起作用`@Selenium_driver.find_元素(:xpath,“//a[contains(text(),'Verify Now')])能否检查元素是否在iframe中?我在inspector中没有看到任何带有文本的标记。还有其他方法可以找到吗?嘿,我刚刚在页面的源代码中看到,这个电子邮件正文在iframe中。
电子邮件正文