XPath - I problem

głosy
2

Co zrobić, aby wybrać konkretny element z dynamicznej strony internetowej z XPath? powiedzmy w poniższej tabeli: Chciałbym, aby wybrać drugi rząd,

  • kolumna A jest „ok”
  • Kolumna C jest pusty
  • Kolumna D jest „do wzięcia”

Mam zamiar wybrać obraz wejściowy z „icon_edit” jako źródła, ale z mojego obecnego XPath, jest wybranie dwóch z nich.

  //*[normalize-space(td[1])=ok and not(normalize-space(td[3])) and normalize-space(td[4]=Available)]//*[contains(@src, icon_edit)]

<html>
	<body>
		<table>
			<tbody>
				<tr>
					<th>a</th>
					<th>b</th>
					<th>c</th>
					<th>d</th>
					<th>e</th>
					<th>f</th>
					<th>Actions</th>
				</tr>
				<tr>
					<td><span>ok</span></td>
					<td><span>has date</span></td>
					<td><span>has date</span></td>
					<td><span>Available</span></td>
					<td><span>1</span></td>
					<td><span></span></td>
					<td><input type=image src=../../Images/icon_edit_Grey.gif>
						<input type=image src=../../Images/icon_delete_Grey.gif>
					</td>
				</tr>
				<tr>
					<td><span>ok</span></td>
					<td><span>has date</span></td>
					<td><span></span></td>
					<td><span>Available</span></td>
					<td><span>1</span></td>
					<td><span></span></td>
					<td><input type=image src=../../Images/icon_edit_Grey.gif>
						<input type=image src=../../Images/icon_delete_Grey.gif>
					</td>
				</tr>
				<tr>
					<td><span>ok</span></td>
					<td><span>has date</span></td>
					<td><span></span></td>
					<td><span>Not Available</span></td>
					<td><span>1</span></td>
					<td><span></span></td>
					<td><input type=image src=../../Images/icon_edit_Grey.gif>
						<input type=imagesrc=../../Images/icon_delete_Grey.gif>
					</td>
				</tr>
				<tr>
					<td><span>Not ok</span></td>
					<td><span>has date</span></td>
					<td><span></span></td>
					<td><span>Available</span></td>
					<td><span>2</span></td>
					<td><span></span></td>
					<td><input type=image src=../../Images/icon_edit_Grey.gif>
						<input type=image src=../../Images/icon_delete_Grey.gif>
					</td>
				</tr>
		<table>
	</body>
</html>

Utwórz 18/12/2018 o 11:11
źródło użytkownik
W innych językach...                            


1 odpowiedzi

głosy
2

Zrobiłeś literówkę w trzecim orzecznika. Wystarczy zastąpić

normalize-space(td[4]="Available")

z

normalize-space(td[4])="Available"

Pamiętaj, że normalize-space(td[4]="Available")zawsze powrócić truepodczas normalize-space(td[4])="Available"powrotu true, jeśli wymagane jest spełniony warunek

Odpowiedział 18/12/2018 o 11:20
źródło użytkownik

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more