Co to znaczy, jeśli podwójny ukośnik jest używany 2 razy w XPath. Załóżmy Używam XPath jakJeśli podwójny ukośnik (//) jest używany 2 razy w XPath, co to znaczy?
//div[@id='add']//span[@id=addone']
Co to znaczy, jeśli podwójny ukośnik jest używany 2 razy w XPath. Załóżmy Używam XPath jakJeśli podwójny ukośnik (//) jest używany 2 razy w XPath, co to znaczy?
//div[@id='add']//span[@id=addone']
podwójny ukośnik //
oznacza każdą potomka węzła bieżącego węzła w drzewie html który Feets lokalizatora.
Pojedyncza kreska /
oznacza węzeł będący bezpośrednim potomkiem bieżącego.
//div[@id='add']//span[@id=addone']
będzie mach
<div id="add">
<div>
<span id="addone">
</div>
</div>
I
<div id="add">
<span id="addone">
</div>
//div[@id='add']/span[@id=addone']
będą macha tylko drugie drzewo html.
Jeśli masz to.
<div id='add'>
<ul>
<li>
<span id='add one' />
</li>
</ul>
</div>
Następnie //div[@id='add']//span[@id='addone']
spowoduje rozpiętości ponieważ drugi //
oznacza spojrzeć na każde dziecko w stosunku do div[@id='add']
że jest span[@id='add one']
.
Jeśli użyjesz jednego ukośnika //div[@id='add']/span[@id='addone']
to oczywiście go nie znajdziesz, ponieważ wtedy szukasz bezpośredniego dziecka i będziesz musiał użyć //div[@id='add']/ul/li/span[@id='addone']
. Drugi //
jest bardzo przydatny w unikaniu dodatkowej hierarchii w twoich ścieżkach x.
Mam jeszcze jedno pytanie. Na stronie znajduje się przycisk "szukaj". Jeśli go kliknę, wyświetli wszystkie wyniki. Warunek jest taki, że jeśli dane są obecne, to wyświetli dane w wierszu, ale jeśli dane nie są obecne, wyświetli tekst "Brak elementu" na stronie. Czy możesz mi powiedzieć, jak poradzić sobie z tą sytuacją?\t Mam spróbować, jeśli -else warunku, ale jest pokazujący wyjątek element nie znaleziono. Proszę mi pomóc, jak sprawdzę dane stanu nie znalezione dla konkretnego elementu. –
Nie ma za co. Proszę [zaakceptuj] (http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work) tę odpowiedź, jeśli jest pomocna, i zadaj nowe pytanie dotyczące zapytania dotyczącego nowego przycisku wyszukiwania. –
Używam następującej logiki: If (! = (Webelement.xpath (""). IsDisplayed) element found else ((webelement.xpath (""). IsDisplayed) element nie został znaleziony Tutaj użyłem, jeśli jeszcze pętla sprawdzi który element jest obecny, ale jeśli element nie jest obecny w pierwszej, jeśli jest, to wyświetlił "błąd nie znalezionego elementu", proszę zasugeruj na nim: –
Podwójna kreska (//
) jest osią potomną lub własną; jest to skrót od /descendant-or-self::node()/
. pojawia
//div[@id='add']//span[@id='addone']
//
, to wybiera wszystkie div
elementy w dokumencie z wartością atrybutu id
równej 'add'
: W przykładzie XPath.
//
, wybiera wszystkie elementy span
, które są potomkami każdego z wcześniej wybranych elementów .//span[@id='addone']
wybierze wszystkiespan
elementy z @id='addone'
w całym dokumencie, niezależnie od tego, czy są one potomek div
z @id='add'
.Mam jeszcze jedno pytanie Na stronie znajduje się przycisk "szukaj", jeśli go kliknę, wyświetli wszystkie wyniki. Teraz warunek jest taki, że jeśli dane są obecne, to wyświetli dane w wierszu, ale jeśli dane nie są obecne, na stronie pojawi się tekst "Brak elementu" na stronie. obsłużyć tę sytuację –
Mam tr y z warunkiem -else, ale pokazuje wyjątek nie znaleziony elementu. Proszę mi pomóc, jak sprawdzę dane stanu nie znalezione dla konkretnego elementu. –
Nie ma za co. Proszę [** accept **] (http://meta.stackoverflow.com/q/5234/234215) tę odpowiedź, jeśli jest to pomocne, i zadaj nowe pytanie dotyczące zapytania dotyczącego nowego przycisku wyszukiwania. Pamiętaj, aby dołączyć [mcve] demonstrujące, w jaki sposób XPath nie wybiera tego, co chcesz. Dzięki. – kjhughes
Tushar K, czy na twoje pytanie udzielono odpowiedzi? Jeśli tak, proszę [** accept **] (http://meta.stackoverflow.com/q/5234/234215) odpowiedź, którą uznałeś za najbardziej pomocną. Dzięki. – kjhughes