当前位置: 首页 > 编程语言 > C#

UsingSeleniumWebDrivertoGetAllAttributesfromIWebElementShare

时间:2023-04-10 18:28:55 C#

UsingSeleniumWebDrivertoGetAllAttributesfromIWebElement我想用Selenium从DOM中提取一些信息。我正在使用C#WebDriver。查看IWebElement接口,您可以轻松提取给定的属性。但是,我想在事先不知道名称的情况下提取元素的所有属性。一定有一些简单的方法可以做到这一点,因为如果您知道属性的名称,就有办法获取该属性的值。一个例子:IWebElementelement=driver.FindElement(By.Id("myButton"));字典属性=newDictionary();//????????//利润。希望我遗漏了一些明显的东西。提前致谢!JavaScript中的.attributes属性将返回给定元素具有的所有属性及其值的数组。所以你需要做的是首先得到一个能够运行JavaScript的驱动程序:IJavascriptExecutorjavascriptDriver=(IJavascriptExecutor)driver;现在,执行它:Dictionaryattributes=javascriptDriver.ExecuteScript("varitems={};for(index=0;index;JavaScript背后的思想是在元素本身使用JavaScriptattributes属性,然后提取我们需要的信息–属性的名称和值。其实attributes属性提取了很多关于每个属性的信息,但是我们只需要两个字段。所以我们得到这两个字段,把它们放到一个字典中,WebDriver解析回来我们。(它可能会被清理一下)它现在是一个字典,所以你可以尽可能多地循环。每对的键是属性的名称,每对的值将是值属性的。我只用网络上点缀的几个元素(这里是谷歌和一些小页面)测试了它,它似乎工作正常。你可以试试这个:IWebElementelement=driver.FindElement(By.Id("myButton"));stringelementHtml=element.GetAttribute("outerHTML");这将为您提供元素的html。从这里,您可以按照Arran的建议解析它您可以执行FindElement(By.tag("body"))以返回WebElements列表,然后按照您的建议解析结果。你可以试试看:以上是C#学习教程:使用SeleniumWebDriver从IWebElement中获取所有属性共享的所有内容。如果对大家有用,需要进一步了解C#学习教程,希望大家多多关注——ActionsnewTab=newActions(webdriver);newTab.ContextClick(element).SendKeys(Keys.ArrowDown).SendKeys(Keys.ArrowDown).SendKeys(Keys.Return).Build().Perform();列表el=newList();el.AddRange(driver.FindElements(By.CssSelector("*")));列表ag=newList();for(intb=0;b本文采集自网络,不代表立场,如涉及侵权,请点击右侧联系管理员删除。如需转载,请注明出处: