在C#中使用Selenium Web Driver查找元素

时间:2013-09-12 20:39:21

标签: c# internet-explorer selenium webdriver

所以我一直在学习如何在Selenium中使用C#来为项目进行一些自动化测试。但是,我在这个问题上遇到了障碍。我一直试图找出点击此网页上的以下链接的方法。

以下是我的目标:

<A class='PortalLink' HREF="https://mywebsite.com/myprograms/launchprogram.jsp?" onClick="setUser('login','password');"><span>MyProgram</span></A>

ClassName搜索没有发现任何内容。虽然有倍数,但我只是想知道我是否可以检测到它们的存在。

By.ClassName("PortalLink")

我尝试使用href进行基于CssSelector的搜索,但这也失败了。

By.CssSelector("[href*='https://mywebsite.com/myprograms/launchprogram.jsp?']")

最后,我尝试使用XPath并按类和范围内容进行搜索,但这也找不到链接。

By.XPath("//A[contains(@class,'PortalLink') and span[text()='MyProgram']]")))

有问题的网页包含2个框架,我试过这两个框架。

我在超时前等待了200秒。我做错了什么?在此先感谢您的帮助!

2 个答案:

答案 0 :(得分:2)

假设在ajax期间该元素未附加到DOM,则您的语句应为

By.CssSelector("a.PortalLink[href*='launchprogram.jsp']")

如果这些链接有多个,那么我们需要在父子层次结构中更进一步,因为此链接没有更多属性可以使此链接唯一。

答案 1 :(得分:0)

如果您可以发布此链接的父html,那么我们可以建议更多选项,

你能试试这些......

 //span[contains(text(),'MyProgram']
//span[contains(text(),'MyProgram']/../