it-swarm-id.com

Python Selenium mengakses sumber HTML

Bagaimana saya bisa mendapatkan sumber HTML dalam variabel menggunakan modul Selenium dengan Python?

Saya ingin melakukan sesuatu seperti ini:

from Selenium import webdriver
browser = webdriver.Firefox()
browser.get(raw_input("Enter URL: "))
if "whatever" in html_source:
    # Do something
else:
    # Do something else

Bagaimana saya bisa melakukan ini? Saya tidak tahu cara mengakses sumber HTML.

85
user1008791

Anda perlu memanggil properti page_source. Lihat di bawah.

from Selenium import webdriver
browser = webdriver.Firefox()
browser.get(raw_input("Enter URL: "))
html_source = browser.page_source
if "whatever" in html_source:
    # do something
else:
    # do something else
167
AutomatedTester

Dengan Selenium2Library Anda dapat menggunakan get_source()

import Selenium2Library
s = Selenium2Library.Selenium2Library()
s.open_browser("localhost:7080", "firefox")
source = s.get_source()
5
Milanka

driver.page_source akan membantu Anda mendapatkan kode sumber halaman. Anda dapat memeriksa apakah teks ada di sumber halaman atau tidak.

from Selenium import webdriver
driver = webdriver.Firefox()
driver.get("some url")
if "your text here" in driver.page_source:
    print('Found it!')
else:
    print('Did not find it.')

Jika Anda ingin menyimpan sumber halaman dalam variabel, tambahkan baris di bawah ini setelah driver.get:

var_pgsource=driver.page_source

dan ubah jika kondisi menjadi:

if "your text here" in var_pgsource:
3
Dhiraj

Dengan menggunakan sumber halaman Anda akan mendapatkan seluruh kode HTML.
Jadi, pertama-tama tentukan blok kode atau tag yang Anda perlukan untuk mengambil data atau mengklik elemen ..

options = driver.find_elements_by_name_("XXX")
for option in options:
    if option.text == "XXXXXX":
        print(option.text)
        option.click()

Anda dapat menemukan elemen berdasarkan nama, XPath, id, tautan, dan jalur CSS.

2

Untuk menjawab pertanyaan Anda tentang mendapatkan URL untuk digunakan untuk urllib, cukup jalankan kode JavaScript ini:

url = browser.execute_script("return window.location;")
1
Bob Evans