栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Selenium C#Webdriver FindElements(By.LinkText)正则表达式?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Selenium C#Webdriver FindElements(By.LinkText)正则表达式?

简而言之,没有一种

FindElement()
策略支持使用正则表达式查找元素。最简单的方法是使用它
FindElements()
来找到页面上的所有链接,并将它们的
.Text
属性与您的正则表达式匹配。

但是请注意,如果单击链接会在同一浏览器窗口中导航到新页面(即,单击链接时未打开新的浏览器窗口),则需要捕获所有链接的确切文本想点击以备后用。我之所以这样说是因为,如果您尝试保留对在首次

FindElements()
调用过程中找到的元素的引用,则在单击第一个元素之后,它们将过时。如果这是您的情况,则代码可能如下所示:

// WARNING: Untested pre written from memory. // Not guaranteed to be exactly correct.List<string> matchinglinks = new List<string>();// Assume "driver" is a valid IWebDriver.ReadOnlyCollection<IWebElement> links = driver.FindElements(By.TagName("a"));// You could probably use LINQ to simplify this, but here is// the foreach solutionforeach(IWebElement link in links){    string text = link.Text;    if (Regex.IsMatch("your Regex here", text))    {        matchinglinks.Add(text);    }}foreach(string linkText in matchinglinks){    IWebElement element = driver.FindElement(By.linkText(linkText));    element.Click();    // do stuff on the page navigated to    driver.Navigate().Back();}


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/425731.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号