cuốn sách gpt4 ai đã làm

Selenium.common.Exceptions.NoSuchElementException: Thông báo: Không thể tìm thấy phần tử://pre/*[not(self::b)]

In lại Tác giả: Vũ trụ không gian Thời gian cập nhật: 2023-11-03 20:53:14 25 4
mua khóa gpt4 Nike

https://www.codechef.com/ACMIND17/problems/STDDEV/Tôi đang cố gắng lấy đầu vào và đầu ra của câu hỏi sau bằng tập lệnh python nhưng tôi gặp phải lỗi sau

Selenium.common.Exceptions.NoSuchElementException: Thông báo: Không thể định vị phần tử: //pre/*[not(self::b)]

Bạn có thể dễ dàng nhận thấy rằng cả pre và b đều tồn tại trong mã nguồn và b là con của pre, thay vào đó tại sao lỗi này tôi chỉ cố gắng loại trừ thẻ b

từ trình quản trị web nhập khẩu selen
từ Khóa nhập Selenium.webdriver.common.keys
trình điều khiển = webdriver.Firefox()
driver.get('https://www.codechef.com/ACMIND17/problems/STDDEV/')
str=driver.find_element_by_xpath("//pre/*[not(self::b)]").text;
in(str);

Tôi mới bắt đầu học tất cả những điều này ngày hôm nay và tôi xin lỗi nếu nó hơi ngu ngốc

câu trả lời hay nhất

Thật không may, phương thức find_element của selen yêu cầu một phần tử làm giá trị trả về, vì vậy chúng tôi không thể sử dụng //pre/text()[1] làm đầu vào hoặc //pre/text()[2] cho đầu ra. Vì vậy, chúng tôi phải chuyển tiếp JavaScript để có được kết quả mong muốn.

Cách dễ dàng là sử dụng phương pháp trích xuất văn bản từ một vị trí nhất định trong phần tử. Bạn có thể sử dụng phương pháp này trong ứng dụng của mình vì vậy hãy ưu tiên phương pháp này.

Lưu ý: trong phương pháp nàyvăn bảnVị tríKhông có gì hơn một chỉ mục nút văn bản. Ví dụ: trong trường hợp này, giá trị đầu vào là nút văn bản đầu tiên và giá trị đầu ra là nút văn bản thứ hai.

def get_text_from_parent_by_postion(phần tử, textPosition=1):
trả về driver.execute_script(
""" var parent = đối số [0];
var textPosition = đối số [1];
var txtPosition = 0;
var child = parent.firstChild;
var textValue="";
trong khi(con) {
if (child.nodeType === 3){
if (txtPosition===textPosition){
textValue = child.textContent;
phá vỡ;
}}else{txtPosition+=1;}
con = child.nextSibling;
}
trả về giá trị văn bản;""",
phần tử, textPosition).strip()

Cách gọi nó trong trường hợp của bạn:

# đầu vào in
print(get_text_from_parent_by_postion(driver.find_element_by_tag_name("pre")),1))
#in đầu ra
print(get_text_from_parent_by_postion(driver.find_element_by_tag_name("pre")),2))

Về python - Selenium.common.Exceptions.NoSuchElementException: Thông báo: Không thể tìm thấy phần tử://pre/*[not(self::b)], chúng tôi đã tìm thấy một câu hỏi tương tự trên Stack Overflow: https://stackoverflow.com/questions/56176763/

25 4 0
Bài viết khuyến nghị: Biểu đồ với python tần số y tùy chỉnh
Bài viết khuyến nghị: html - nền nhấp nháy khi di chuột
Bài viết khuyến nghị: css - Phát hiện giao diện webkit bằng Modernizr
Bài viết khuyến nghị: python - Đánh giá PySpark
không gian vũ trụ
Hồ sơ

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá taxi Didi miễn phí
Phiếu giảm giá taxi Didi
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress