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>
これを行う方法はありますか?任意の提案をいただければ幸いです。
乾杯
これは、テキスト「xyz」を含むすべてのdivタグを選択するために使用できるXPathです。
"//div[contains(@class, 'xyz')]"
したがって、これを使用するには、この行を使用します。これにより、テキスト「xyz」を含むすべてのdivのコレクションが作成されます。
var divElements = driver.FindElements(By.XPath("//div[contains(@class, 'xyz')]"));
IWebDriver driver = new FirefoxDriver();
driver.FindElement(By.CssSelector("div.xyz"));
質問はすでに回答済みのよう です。Pythonを使用してSeleniumWebDriverでWebElementのHTMLソースを取得します 。次に、出力を解析できます。
編集
物事を簡単にするために:(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行と同じことをする1行のコードを持っている人がいると確信していますが、これが私が思いついたものでした。また、このコードは非常に迅速にJavaに変更できます