2017-12-25 8 views
1

を考えると、この(「スリープ」の方法は、あなたが私が探しているものを見ることができますです):Pythonのスプリンター表条件付きでリンクをクリックして

from splinter import Browser 
import time 
#from selenium.webdriver.support.ui import WebDriverWait 
#from selenium.webdriver.remote.webdriver import WebDriver 

with Browser() as browser: 
    # Visit URL 
    url = "https://mdoe.state.mi.us/moecs/PublicCredentialSearch.aspx" 
    browser.visit(url) 
    browser.fill('ctl00$ContentPlaceHolder1$txtCredentialNumber', 'IF0000000262422') 

    # Find and click the 'search' button 
    button = browser.find_by_name('ctl00$ContentPlaceHolder1$btnSearch') 
    # Interact with elements 
    button.first.click() 
    #implicitly_wait(time_to_wait=5) 
    time.sleep(30) 

を私はスプリンター/セレンは内のリンクをクリックします(同じ列の)左の欄の値「プロフェッショナル教育認定リニューアル」に対応する右の列。

tables=browser.find_by_tag('table') #Get all tables 
rows=tables.find_by_tag('tr') #Get all rows in the tables 
data=rows.find_by_tag('td') #Get the data(cell)s in the rows 

私の戦略は、値(データ)「プロフェッショナル教育の認定更新」を持つ行を見つけて、それが対応するためにすることです。ここでは

は、私が(上記のコードの後に​​)これ​​までに試したものです右側の列のリンクをクリックします。私は良い戦略があるかどうかは分かりませんが、もしあれば私は確かにこれと結婚しません。

私はデータオブジェクトを調べてその内容を判断する方法を教えていません。 これを行うことができれば、残りの部分を把握できるかもしれません。

ありがとうございます!私が理解から、あなたが事前にProfessional Teaching Certificate Renewalテキストを知っているし、次の列のリンクを見つけるためにそれを使用することができ、我々は最初のテキストでtdを検索し、内部リンクをつかんnext siblingtd要素に進むことができ、以来

答えて

1

certificate_link = browser.find_by_xpath("//td[. = 'Professional Teaching Certificate Renewal']/following-sibling::td/a") 
certificate_link.first.click() 
+0

素晴らしい!私はそれがどのように機能するかについての手掛かりはまだありませんが(詳細についてはまだ学んでいますが)、それは魅力のように機能します。どうもありがとう! –

+0

フォローアップに関する質問はこちら:https://stackoverflow.com/questions/47974320/python-splinter-get-value-from-table-following-sibling –