在Selenium中需要一些模式匹配的帮助。我试图阅读以下内部的div标签,硒模式匹配
<div>
<div class="xyz one"></div>
<div class="xyz two"></div>
<div class="xyz three"></div>
</div>
有没有办法我可以做到这一点?任何建议将不胜感激。
干杯
在Selenium中需要一些模式匹配的帮助。我试图阅读以下内部的div标签,硒模式匹配
<div>
<div class="xyz one"></div>
<div class="xyz two"></div>
<div class="xyz three"></div>
</div>
有没有办法我可以做到这一点?任何建议将不胜感激。
干杯
这里有一个XPath,你可以使用以便选择包含文本“XYZ”的所有div标签。
"//div[contains(@class, 'xyz')]"
所以为了利用这一点,你会使用这条线,这与文本“XYZ”
var divElements = driver.FindElements(By.XPath("//div[contains(@class, 'xyz')]"));
创建所有的div的集合
看起来像你的问题已经回答 Get HTML Source of WebElement in Selenium WebDriver using Python 然后你可以分析你的产出。
编辑
为了让事情变得更容易:(使用Python)
尝试:
class_list = []
my_divs = driver.find_elements_by_css_selector(div[class*=xyz])
for div in my_divs:
outerHTML = div.get_attribute("outerHTML")
classpos = outerHTML.find('class=') #find where our class identifier begins
quote_begin = outerHTML.find('"',classpos)
quote_end = outerHTML.find('"', quote_begin+1)
our_class = outerHTML[classpos:quote_end+1] #get the entire class identifier
class_list.append(our_class)
print our_class
我敢肯定,那里有某人的代码一个衬垫,做同样的事情我的4条线就是这样,但这是我能想到的。此外,该代码可以很快改变周围成Java
IWebDriver driver = new FirefoxDriver();
driver.FindElement(By.CssSelector("div.xyz"));