S. *_*nov 6 python selenium selenium-chromedriver
我试图访问的网页正在使用JavaScript动态生成HTML表单(该表单:https : //imgur.com/a/rhmXB)。键入时print(page_source),该表似乎出现在正在输出的HTML中。
但是,在填写输入字段并提交表单之后,将出现另一个包含验证码图像的输入字段(如此处所示:https : //imgur.com/a/xVfBS)。键入后print(page_source),带有验证码的输入表单似乎未插入HTML。
我的问题是:如何访问此动态生成的HTML,其中包含使用Selenium的输入字段和CAPTCHA图像?
这是我的代码(也在pastebin中):
from selenium import webdriver
driver = webdriver.Chrome("/var/chromedriver/chromedriver")
URL = 'http://nap.bg/link?id=104'
driver.get(URL)
input_field = driver.find_element_by_name('ipID')
input_field.send_keys('0000000000')
driver.find_element_by_id('idSubmit').click()
print(driver.page_source)
Run Code Online (Sandbox Code Playgroud)
单击按钮后,该页面将花费一些时间来加载验证码和其他内容。您需要等待加载完成。您可以使用Selenium的显式等待来做到这一点。
这是您可以做什么的示例:
from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
driver = webdriver.Chrome()
URL = 'http://nap.bg/link?id=104'
driver.get(URL)
input_field = driver.find_element_by_name('ipID')
input_field.send_keys('0000000000')
driver.find_element_by_id('idSubmit').click()
wait = WebDriverWait(driver, 10)
wait.until(EC.element_to_be_clickable((By.NAME, 'ipResponse')))
print(driver.page_source)Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1126 次 |
| 最近记录: |