给定此("睡眠"方法是这样,您可以看到我在看什么):
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)
我希望Splinter/Selenium单击右列中的链接,该链接对应于左侧(同一行)的列中的"专业教学认证续订"。
这是我到目前为止尝试的(以上代码之后):
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
,然后继续前进到下一个同胞 td
元素抓住内在链接:
certificate_link = browser.find_by_xpath("//td[. = 'Professional Teaching Certificate Renewal']/following-sibling::td/a")
certificate_link.first.click()