在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"));