通过click()找到超链接后如何使用find_element

时间:2019-07-09 07:30:13

标签: python selenium selenium-webdriver web-scraping

我用过

v-model

以获取链接列表。如何在已有的Web元素上应用find_elements?

以及如何在网页上返回字符串? find_element可以做到吗?

例如:

continue_link=driver.find_elements_by_partial_link_text("contract")

我想返回: “我喜欢篮球和橄榄球。我喜欢烹饪。谢谢。”

3 个答案:

答案 0 :(得分:1)

WebElement也具有find_elements()功能

continue_link = driver.find_elements_by_partial_link_text("contract")
for link in continue_link:
    elements = link.find_elements_by_partial_link_text('')

要获取特定的子字符串,您可以

s1 = 'I like basketball and football'
s2 = 'like'

result = s1[s1.index(s2) + len(s2):]

答案 1 :(得分:1)

我相信与您提供的HTML代码段相匹配的正确XPath expression类似于:

//div[@class='article-detail-text']/descendant::p[contains(text(),'hi')]

找到相关的<div> tag后,您将可以使用descendant来获取<p> tag innerText property的文本

print(driver
      .find_element_by_xpath("//div[@class='article-detail-text']/descendant::p[contains(text(),'hi')]")
      .get_attribute("innerText"))

演示:

enter image description here

答案 2 :(得分:0)

要返回文本I like basketball and football. I like cooking. Thanks.,请尝试以下选项。

print(' '.join(driver.find_element_by_xpath("//p[contains(.,'hi:')]").text.split('hi:')[1].splitlines()))

这将打印:

I like basketball and football. I like cooking. Thanks.