Python + Selenium:如何点击“onclick”元素?

时间:2018-03-08 10:53:51

标签: python css python-2.7 selenium xpath

我在网页中有一个“onclick”元素,其HTML内容如下:

<a href="#" onclick="fastener('3625')">Fastener</a>

我想使用Python + Selenium使用字符串“fastener”或“Fastener”搜索此元素。数字“3625”将根据先前的输入而改变,因此无法搜索。

我尝试了以下方法,但徒劳无功:

br.find_element_by_css_selector("a[@onlick*='fastener']").click()

请建议如何做到这一点。谢谢!

P.S。:我正在使用Python 2.7,Chrome WebDriver和Chrome v62。

4 个答案:

答案 0 :(得分:1)

使用以下代码:

br.find_element_by_link_text("Fastener").click()

希望它可以帮到你!

答案 1 :(得分:1)

使用capybara-py

page.click_link("Fastener")

Capybara旨在提供这个和许多其他类似的辅助方法,例如,可能需要从最终用户的角度编写验收测试:

page.fill_in("Street", value="123 Main St")
page.select("United States", field="Country")
page.choose("Expedited shipping")
page.click_button("Place order")

答案 2 :(得分:0)

要将文字搜索为紧固件,您可以使用以下任一选项:

  • 通过紧固件

    br.find_element_by_link_text("Fastener").click()
    
  • 通过紧急(xpath) onclick

    br.find_element_by_xpath("//a[contains(@onclick,'fastener')]").click()
    
  • 通过紧急(css_selector) onclick

    br.find_element_by_css_selector("a[onclick^='fastener']").click()
    

答案 3 :(得分:0)

使用包含搜索元素

//a[contains (@onclick='fastener')]

OR

   //a[contains(text(),"Fastener")]