Splinter - 如何单击实现为div或span元素的链接/按钮

时间:2015-04-21 13:18:57

标签: python web-scraping splinter

我在Python中使用Splinter库。我希望根据链接文本点击链接,但这不起作用。

链接包含在源代码中:

<a href="link here"><span style="color:#000000;">link text here</span></a>

使用“browser.click_link_by_text('link text here')”会出错:

  

splinter.exceptions.ElementDoesNotExist:找不到任何元素   链接文本“链接文本在这里”

4 个答案:

答案 0 :(得分:4)

我也曾多次偶然发现click_link_by_text函数,但接下来的其余部分成功了。您可以尝试其中任何一种。

  • browser.click_link_by_href('link here') #From "link here"

  • browser.click_link_by_partial_href('link') #From "link here"

  • browser.click_link_by_partial_text('link text') #From "link text here"

您可以按照此处的说明操作: https://splinter.readthedocs.io/en/latest/api/driver-and-element-api.html#splinter.driver.DriverAPI.click_link_by_text

答案 1 :(得分:0)

您能提供完整的代码吗?我不能说为什么它不适合你,因为它适用于我,使用以下代码。

 from splinter import Browser

 browser = Browser('chrome')
 browser.visit("https://www.google.co.in/")
 browser.fill('q','facebook')
 button = browser.find_by_name('btnG')
 button.click()
 browser.click_link_by_text("Facebook Login")

答案 2 :(得分:0)

试一试~~~~

from splinter import Browser
browser = Browser('chrome')
browser.windows.current = browser.windows[0] #maybe you have a lot of windows.
xpath = '//div[@class="big-play-button"]'
browser.find_by_xpath(xpath).click()

答案 3 :(得分:0)

一种选择是使用开发人员工具或Firebug来查找您感兴趣的元素的xpath,然后根据它使用find_by_xpath

from splinter import Browser

with Browser() as browser:
    browser.visit("http://www.thisamericanlife.org")
    browser.fill('keys', 'relationships')
    button = browser.find_by_xpath('/html/body/div[2]/div[2]/div[1]/div[2]/div/form/div/input[1]').click()
    print browser.url

这会填写表单(在本例中为搜索字词“relationship”),然后导航到页面http://www.thisamericanlife.org/search?keys=relationships