所以我一直在学习如何在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秒。我做错了什么?在此先感谢您的帮助!
答案 0 :(得分:2)
假设在ajax期间该元素未附加到DOM,则您的语句应为
By.CssSelector("a.PortalLink[href*='launchprogram.jsp']")
如果这些链接有多个,那么我们需要在父子层次结构中更进一步,因为此链接没有更多属性可以使此链接唯一。
答案 1 :(得分:0)
如果您可以发布此链接的父html,那么我们可以建议更多选项,
你能试试这些......
//span[contains(text(),'MyProgram']
//span[contains(text(),'MyProgram']/../