Selenium ile karmaşık bir javascript arabirimini (Python arabirimini kullanarak ve birden çok tarayıcıyı kullanarak) test etmeye çalışıyorum. Formun düğmeleri bir dizi var:
<div>My Button</div>
"Düğmem" (veya "düğmem" veya "düğme" gibi büyük / küçük harfe duyarlı olmayan kısmi eşleşmeler temelinde düğmeler arayabilmek istiyorum)
Bunu inanılmaz derecede zor buluyorum, ne kadar bariz bir şeyi kaçırmışım gibi hissediyorum. Şimdiye kadar sahip olduğum en iyi şey:
driver.find_elements_by_xpath('//div[contains(text(), "' + text + '")]')
Ancak bu büyük / küçük harfe duyarlıdır. Denediğim diğer bir şey de sayfadaki tüm div'leri yinelemek ve element.text özelliğini kontrol etmektir. Bununla birlikte, formun her durumunu aldığınızda:
<div class="outer"><div class="inner">My Button</div></div>
div.outer ayrıca metin olarak "Düğmem" e sahiptir. Bunu düzeltmek için div.outer'ın div.inner'ın üst öğesi olup olmadığını aramaya çalıştım, ancak bunu nasıl yapacağınızı anlayamadım (element.get_element_by_xpath ('..') bir öğenin üst öğesini döndürüyor, ancak testler div.outer'a eşit değildir). Ayrıca, sayfadaki tüm öğeler arasında yineleme yapmak, en azından Chrome web sürücüsünü kullanarak gerçekten yavaş görünüyor.
Fikirler?
Edit: Bu soru biraz belirsiz çıktı. Burada daha spesifik bir sürüm istendi (ve cevaplandı): Selenium WebDriver'da (Python api aracılığıyla) bir alt öğenin metni alt öğe metni eklenmeden nasıl alınır?