在 C# 中使用 Selenium Web 驱动程序查找元素
本文关键字:Web 驱动程序 查找 元素 Selenium | 更新日期: 2023-09-27 18:31:17
所以我一直在学习如何在C#
中使用Selenium
为项目做一些自动化测试。但是,我在这个问题上遇到了障碍。我一直在试图找出点击此网页上的以下链接的方法。
以下是我尝试的目标:
<A class='PortalLink' HREF="https://mywebsite.com/myprograms/launchprogram.jsp?" onClick="setUser('login','password');"><span>MyProgram</span></A>
按ClassName
搜索没有发现任何东西。虽然有多个,但我只是想看看我是否能检测到它们的存在。
By.ClassName("PortalLink")
我尝试使用 CssSelector
进行基于href
的搜索,但这也失败了。
By.CssSelector("[href*='https://mywebsite.com/myprograms/launchprogram.jsp?']")
最后,我尝试使用XPath
并按类和跨度内容搜索,但这也未能找到链接。
By.XPath("//A[contains(@class,'PortalLink') and span[text()='MyProgram']]")))
有问题的网页包含 2 个框架,我已经尝试了这两个框架。
我正在等待 200 秒才超时。我做错了什么?提前感谢任何帮助!
假设这个元素在 ajax 期间没有附加到 DOM,你的语句应该是
By.CssSelector("a.PortalLink[href*='launchprogram.jsp']")
如果有多个这些链接,那么我们需要在父子层次结构中更进一步,因为此链接没有更多使此链接唯一的属性。
如果您可以发布此链接的父html,那么我们可以建议更多选项,
你能试试这些吗?
//span[contains(text(),'MyProgram']
//span[contains(text(),'MyProgram']/../