单击文本链接 - 使用Selenium

时间:2017-01-12 13:48:15

标签: c# html selenium selenium-webdriver css-selectors

我尝试点击的链接根本无法识别。 chrome中的开发人员工具向我显示了以下结构中的链接:

<main 
   <div
    <ifreame
     #document
      <html
        <body
          <form
             <div
                 ::before
                   <a href=wizard_view.do?  sys_action=sysverb_wizard_ans&WIZARD:action=follow&wiz_referring_url=&wiz_collection_key=&wiz_collectionID=&wiz_collection=&wiz_collection_related_field=&wiz_view=&wiz_action=sysverb_new&sys_id=ea7d96126f92a100f3ae60526e3ee4e0&sysparm_query=active=true&sysparm_target=&sys_target=change_ddfdff>Standard (from Template)

 </a>
 ::after
 </div>
  ....

如何识别并单击此特定文本链接?我尝试过css选择器,xpath等但是没有工作

 anchors = dd.findElements(By.linkText(Standard (from Template)));      

 anchors2 =          dd.findElements(By.cssSelector(a[href*='ea7d96126f92a100f3ae60526e3ee4e0'] )));

此外,还有10个具有相同类名的div部分,每个部分都是文本链接。我想点击它们(见上文)

2 个答案:

答案 0 :(得分:3)

当您尝试在iframe中搜索元素时,您必须先切换到该帧

driver.SwitchTo().Frame(driver.FindElement(By.Id("_the_frame_id")))

答案 1 :(得分:0)

切换到框架解决了我的问题。但是在下一页中我也有相同的freme(id / name),即使我已经切换到框架,我也无法识别输入文本框。

enter image description here

我得到了NoSuchElementException&#39;当:

   driver.switchTo().frame(driver.findElement(By.id("gsft_main")));
      WebElement stdFromTemplate = driver.findElement(By.linkText("Standard  (from Template)"));

stdFromTemplate.click();
WebElement stTemplate =   driver.findElement(By.id("cced8819db987e08dee9f7b31d961989_text"));

这最后一行(现在是点击我在初始问题中提到的链接后的新页面)行给了我'NoSuchElementFoundException&#39;