a

Câu hỏi Làm cách nào để có được nội dung hiện tại của một phần tử trong trình quản trị web


Tôi phải suy nghĩ về điều này sai.

Tôi muốn lấy nội dung của một phần tử, trong trường hợp này là một trường mẫu, trên một trang mà tôi đang truy cập với Webdriver / Selenium 2

Đây là mã bị hỏng của tôi:

 Element=driver.find_element_by_id(ElementID)
 print Element
 print Element.text

đây là kết quả:

<selenium.webdriver.remote.webelement.WebElement object at 0x9c2392c>

(Chú ý dòng trống) Tôi biết rằng phần tử có nội dung vì tôi chỉ nhồi chúng vào đó bằng lệnh trước đó bằng cách sử dụng .sendkeys và tôi có thể thấy chúng trên trang web thực tế trong khi tập lệnh chạy.

nhưng tôi cần đưa nội dung trở lại dữ liệu.

Tôi có thể làm gì để đọc nó? Tốt nhất là theo kiểu chung để tôi có thể lấy nội dung từ nhiều loại yếu tố khác nhau.


48
2018-04-20 18:26


gốc


loại yếu tố gì? Nếu đó là phần tử đầu vào, bạn cần thuộc tính "giá trị" thay vì văn bản - prestomanifesto
Ah, Giá trị có thể là giải pháp. Sẽ cố gắng. - Skip Huffman


Các câu trả lời:


Tôi tin rằng prestomanifesto đã đi đúng hướng. Nó phụ thuộc vào loại yếu tố đó là gì. Bạn sẽ cần phải sử dụng element.get_attribute('value') cho các yếu tố đầu vào và element.text để trả về nút văn bản của một phần tử.

Bạn có thể kiểm tra đối tượng WebElement bằng element.tag_name để tìm ra loại phần tử nào và trả lại giá trị thích hợp.

Điều này sẽ giúp bạn tìm ra:

driver = webdriver.Firefox()
driver.get('http://www.w3c.org')
element = driver.find_element_by_name('q')
element.send_keys('hi mom')

element_text = element.text
element_attribute_value = element.get_attribute('value')

print element
print 'element.text: {0}'.format(element_text)
print 'element.get_attribute(\'value\'): {0}'.format(element_attribute_value)
driver.quit()

57
2018-04-21 14:12



Cảm ơn .. Tôi đã thu thập dữ liệu trang web cho câu trả lời này hàng giờ !! - Kehlin Swain
@KehlinSwain Happy để giúp :) - Isaac
Liệu phương thức này có hoạt động nếu có nhiều lớp trong một hàng và bạn muốn nhận được văn bản của mỗi lớp trong hàng đó không? - Kehlin Swain


element.get_attribute('innerHTML')

7
2018-03-27 13:31



thực sự hữu ích lệnh để có được các thuộc tính mà không thực sự xuất hiện trên trang như hrefs vv cộng 1 - nerak99


Câu trả lời của tôi dựa trên câu trả lời này: Làm cách nào để có được nội dung hiện tại của một phần tử trong trình quản trị web giống như sao chép-dán.

from selenium import webdriver

driver = webdriver.Firefox()
driver.get('http://www.w3c.org')
element = driver.find_element_by_name('q')
element.send_keys('hi mom')

element_text = element.text
element_attribute_value = element.get_attribute('value')

print (element)
print ('element.text: {0}'.format(element_text))
print ('element.get_attribute(\'value\'): {0}'.format(element_attribute_value))


element = driver.find_element_by_css_selector('.description.expand_description > p')
element_text = element.text
element_attribute_value = element.get_attribute('value')

print (element)
print ('element.text: {0}'.format(element_text))
print ('element.get_attribute(\'value\'): {0}'.format(element_attribute_value))
driver.quit()

0
2017-09-20 09:41





Trong Java của nó Webelement.getText () . Không chắc chắn về python.


-7
2018-04-21 00:31



Thẻ câu hỏi ngụ ý rằng đó là về python - illright