我正试图在下面链接的字段中输入CEP,然后按下"calcular“按钮,该按钮由一个标签给出,类型也是”button“。我想我已经确定机械化不会完成这项工作,但即使是selenium也没有做我需要它做的事情。下面是我的机械化代码。
br = mechanize.Browser()
br.set_handle_robots(False)
br.set_handle_refresh(False)
br.set_all_readonly(False)
br.set_debug_http(True)
br.set_debug_responses(True)
br.addheaders=[('User-Agent', 'Mozilla/5.0 (X11; Linux x86_64)]
br.open(prod_url)
print br.title()
print br.geturl()
br.select_form(nr=1)
br['postalCode']='05454-050'
br.submit()
print br.geturl()
sourceCode=BeautifulSoup(br.response().read(),'html.parser')http://www.americanas.com.br/produto/113266366/fone-de-ouvido-philips-over-ear-branco-shl3000wt
发布于 2016-06-24 22:25:43
使用selenium时,您需要清除占位符,然后使用send_keys输入邮政编码文本,以获得frete价格等。我们需要等到该元素可见::
from selenium.webdriver.common.keys import Keys
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
def wait(dr, x, t):
element = WebDriverWait(dr, t).until(
EC.presence_of_element_located((By.CSS_SELECTOR, x))
)
return element
dr = webdriver.Firefox()
dr.maximize_window()
dr.get("http://www.americanas.com.br/produto/113266366/fone-de-ouvido-philips-over-ear-branco-shl3000wt")
inp = dr.find_element_by_id("postalCode")
inp.clear()
inp.send_keys("05454050")
inp.send_keys(Keys.RETURN)
ele = wait(dr, "table.tbl-freight-template tr td span.freight-value.info-freight", 20)
print(ele.text)运行上面的代码将输出:
R$ 18,45https://stackoverflow.com/questions/38014486
复制相似问题