单击按钮(python),机械化和硒都有问题

时间:2016-10-01 14:53:42

标签: python selenium mechanize

我试图点击" Coevolution Scores(TXT)"单击"导出..."后弹出的按钮但是,使用python脚本here,我无法使用机械化和硒,使用不同的选择类型。

还有其他方法,或者你能否弄清楚我做错了什么?

我使用了这段代码:

url="http://polyview.cchmc.org/cgi-bin/coevolve.cgi?JOB=c8a266e0d7ba7cc"
driver = webdriver.Chrome(executable_path="C:/ProgramFiles/Google/Chrome/Application/chromedriver.exe")
driver.get(url)
time.sleep(15)
driver.find_element(by=By.XPATH, value="//button[@title='Export...']").click()

也尝试通过link_text和放置find_element_by_link_text,而不是将参数放在里面。下面是我尝试点击的按钮。

    <form id="downloadMat" target="formTarget" method="POST" action="coeviz_data.pl">
            <input name="x" class="idData" type="hidden" value="683436.chi">
            <input name="dl" class="dlData" type="hidden" value="683436.chi.wph">
            <input name="w" class="weighted" type="hidden" value="wph">
            <input name="res" type="hidden" value="scores.txt">
            <button onclick="submit()">Coevolution Scores (TXT)</button>
        </form>

1 个答案:

答案 0 :(得分:1)

您尝试选择的代码位于<iframe>元素内。这意味着您必须先切换帧,然后才能选择其中的任何内容。这将有效:

from selenium import webdriver
import time
from selenium.webdriver.common.by import By
url="http://polyview.cchmc.org/cgi-bin/coevolve.cgi?JOB=c8a266e0d7ba7cc"
driver = webdriver.Chrome(executable_path="C:/ProgramFiles/Google/Chrome/Application/chromedriver.exe")
driver.get(url)
time.sleep(15)
driver.switch_to_frame('ifCoeViz')
driver.find_element(by=By.XPATH, value="//button[@title='Export...']").click()