Điều này sẽ dễ dàng, nhưng tôi không thể làm cho nó hoạt động. Tôi đang chạy một bản demo nhỏ bằng cách sử dụng trang chủ Google làm bài kiểm tra.
Đây là kịch bản của tôi:
from selenium import webdriver
from selenium.common.exceptions import NoSuchElementException
from selenium.webdriver.common.keys import Keys
import time
browser = webdriver.Chrome[]
browser.get["//www.google.com"] # Load page
time.sleep[0.2]
#top nav elements
elems = browser.find_elements_by_xpath["//span[contains[@class, 'gbts']]"]
for e in elems:
print e.get_attribute['text']
browser.close[]
Nó trở lại:
None
None
None
None
None
None
None
None
None
None
None
Vì vậy, tôi nghĩ rằng nó đang lấy các yếu tố đúng, nhưng có lẽ không phải là thuộc tính đúng? Không chắc. Tôi cũng đã cố gắng in e.text [] nhưng đó là nhổ ra:
Traceback [most recent call last]:
File "sample.py", line 14, in
print e.text[]
TypeError: 'unicode' object is not callable
Bất kỳ suy nghĩ?
*Chỉnh sửa - Giải pháp có thể? *
e.get_attribute['innerHTML'] seems to work.
Làm cách nào để tìm phần tử với văn bản "Jessica" dựa trên "3000" hiển thị trong trang web bằng XPath?
Tôi đang gặp ... không phải là lỗi XPath hợp lệ.
Jessica
Total Wealth [$]:
3000
Tôi đã thử điều này
RichestPersonName = browser.find_element_by_xpath["//p[text[]='3000'] .. /span"].text
Nhưng nó cho thấy
selenium.common.exceptions.InvalidSelectorException: Message: invalid selector: Unable to locate an element with the xpath expression //p[text[]='3000'] .. /span because of the following error:
SyntaxError: Failed to execute 'evaluate' on 'Document': The string '//p[text[]='3000'] .. /span' is not a valid XPath expression.
hỏi ngày 21 tháng 7 năm 2021 lúc 10:13Jul 21, 2021 at 10:13
Tôi đã thử điều này và nó hoạt động. Quản lý để có được 'Jessica'
RichestPersonName = browser.find_element_by_xpath["//p[text[]='3000']/preceding-sibling::span"].text
Đã trả lời ngày 22 tháng 7 năm 2021 lúc 1:59Jul 22, 2021 at 1:59
Bạn nên sử dụng tùy chọn preceding-sibling
XPath:
//p[text=[]='3000']/preceding-sibling::span
Đã trả lời ngày 21 tháng 7 năm 2021 lúc 10:34Jul 21, 2021 at 10:34
Mate Mršemate MršeMate Mrše
4.0793 Huy hiệu vàng20 Huy hiệu bạc48 Huy hiệu đồng3 gold badges20 silver badges48 bronze badges
2
Bằng cách chọn cách tiếp cận chính xác của việc tạo trình định vị có thể làm cho bất kỳ khung tự động hóa hiệu quả hơn. XPath là một trong những tùy chọn có sẵn để định vị bất kỳ phần tử nào trong các trang web HTML phức tạp. Với sự trợ giúp của XPath, người kiểm tra có thể tìm thấy phần tử chính xác bằng cách điều hướng qua các hệ thống phân cấp khác nhau của trang web. Giống như bằng cách sử dụng, bất kỳ chức năng nào trong số này: chứa, anh chị em và cha mẹ, v.v.
Trong các kịch bản đặc biệt trong đó phần tử cần được đặt bằng cách tham khảo một yếu tố khác, bất kỳ công ty kiểm tra chuyên nghiệp nào đều thích các kỹ thuật động là chọn phần tử trên trang web bằng cấu trúc HTML DOM thay vì làm cho nó được mã hóa khó khăn.
Ba cách có thể để định vị phần tử mong muốn trong trường hợp của bạn được đưa ra dưới đây:
0None None None None None None None None None None None
1None None None None None None None None None None None
2None None None None None None None None None None None
Các cách tiếp cận này sẽ tìm thấy nhịp nút cần thiết với văn bản 'Jessica' bằng cách điều hướng qua các yếu tố khác.
Kate Paulk ♦♦
Phù bằng vàng 31K852 Huy hiệu bạc108 Huy hiệu đồng8 gold badges52 silver badges108 bronze badges
Đã trả lời ngày 23 tháng 7 năm 2021 lúc 9:33Jul 23, 2021 at 9:33
AnandanandAnand
7204 Huy hiệu bạc8 Huy hiệu đồng4 silver badges8 bronze badges