Selenium用文本找到元素?

时间:2018-02-23 11:05:01

标签: python html selenium ignore

我对测试自动化非常陌生,所以如果我只知道部分文本,我可以点击一些链接。 我知道有find_element_by_partial_link_text,但代码中的单词随机出现。如果显示,我无法点击部分文字,例如:

我只知道单词示例 <a class="name-link">First Exa&#65279;mple</a> 我无法按类点击,因为有很多相同的类。 有没有办法忽略&#65279;

我在写python。

2 个答案:

答案 0 :(得分:2)

尝试click()元素:

  • Partial Link Text

    driver.find_element_by_partial_link_text("First Exa").click()
    
  • XPath

    driver.find_element_by_xpath("//a[@class='name-link' and contains(.,'First Exa')]").click()
    

答案 1 :(得分:1)

如果您希望按字词"Example"匹配,可以尝试使用XPath搜索

driver.find_element_by_xpath('//a[contains(., "Exa") and contains(., "mple")]').click()

但请注意,它也会匹配,例如,链接"Examine the sample"

如果这不适合您,您可能需要使用更复杂的xpath:

//a[starts-with(substring-after(., " "), "Exa") and substring(substring-after(., " "), 5) = "mple"]

匹配格式的字符串“(字符串)(空格)Exa(额外的非ascii字符)mple”

另请注意,方法find_by_link_text() / find_by_partial_link_text()会搜索显示在页面上的文字,但不会搜索HTML源代码中显示的 ,因此您只需复制浏览器呈现的页面中的文本,并将其用作driver.find_element_by_partial_link_text()

的参数