2016-10-01 6 views
-1

Я пытаюсь щелкнуть по кнопке «Coevolution Scores (TXT)», которая появляется после нажатия кнопки «Экспорт ...», однако, используя питон сценарий here, я не мог сделать это ни с помощью механизации, ни с селена, используя разные типы выбора.Нажмите кнопку (python), столкнувшись с проблемами как с механизацией, так и с селеном

Есть ли другой способ, или вы можете выяснить, что я делаю неправильно?

Я использовал этот код:

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> 
+0

Забыла сказать, самая распространенная ошибка «элемент не найден» – Preto

+0

Пожалуйста, добавьте пример кода, что вы пробовали до сих пор. – Andrew

+0

Не могли бы вы поделиться соответствующим HTML здесь? –

ответ

1

Код, который вы пытаетесь выбрать, находится внутри элемента . Это означает, что вам нужно сначала переключить кадр, прежде чем выбирать что-либо внутри него. Это будет работать:

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() 
+0

Большое спасибо, это сработало просто отлично! – Preto

+0

Лучший способ использовать 'CSS_SELECTOR' здесь вместо того, чтобы найти кнопку' Export' как 'button [title = 'Export ...']' для лучшей производительности. Спасибо –

+0

@ Прето если я помог вам, пожалуйста, подумайте о принятии ответа (зеленый тик в левой части этого ответа) –

 Смежные вопросы

  • Нет связанных вопросов^_^