Python 通过部分链接文本(链接文本)查找元素

Python 通过部分链接文本(链接文本)查找元素,python,selenium,selenium-webdriver,Python,Selenium,Selenium Webdriver,得到这个问题: 我正在尝试查找网页上的最后一个链接: try: elems=self.br.find_elements_by_partial_link_text(category) except NoSuchElementException: print 'The Category Name Was Not Found'.category f=open("error.log","aw")

得到这个问题: 我正在尝试查找网页上的最后一个链接:

    try:
            elems=self.br.find_elements_by_partial_link_text(category)
    except NoSuchElementException:
            print 'The Category Name Was Not Found'.category
            f=open("error.log","aw")
            f.write("Cant find category:%s\n"%category)
            f.close()
    elems[-1].click()
现在,对于exmaple,我有以下类别: 图书(动态编号) 有声读物(动态编号) 浪漫书(动态编号)

我试着找到“书” 我想要第一个!(它必须是源代码中的最后一个,所以不能从元素中选择第一个)如果我能够选择从书本开始而不是结束的部分链接文本,那么我的系统将可以使用这一点?有什么想法吗?
我不能使用任何其他方法,因为这是一个真正的动态代码,而且大部分内容都会发生变化…

您可以使用类似的方法

xpath="//a[starts-with(text(), %s)]" % category
elems = self.br.find_elements_by_xpath(xpath)
elem = elems[-1]

xpath将完成
的部分工作,而
元素[-1]
将完成其余的部分工作

请您澄清一点-您想获取最后一个元素(基于
元素[-1]
)但是你说你想要第一个元素-你制作的
列表的第一个,还是其他东西的第一个?@MarkRowlands我想得到最后一个元素(elems[-1]),但它必须从我的类别变量(Books)开始因此,它将选择以类别变量开始,而不是以基本结束的最后一个以类别(书籍)开始的。谢谢,我想我现在理解得更多了。对不起,首先还有一个问题:问题是你使用“书籍”作为分类,而不是仅仅提供“书籍”列表,它还包括“有声读物”和“浪漫读物”因为
\u partial\u link\u text
?@MarkRowlands是的。但是我需要图书链接匹配中的最后一个链接,因为以前很少有相同类别的链接。我需要最后一个匹配的书籍,它必须从书籍开始,否则它不应该出现在列表中,因为
\u partial\u link\u text
也会从错误的类别返回
元素
,在这种情况下,这可能不是定位器的最佳选择吗?这是一个复选框,我正在尝试单击此处,这是html代码吗你觉得这样行吗<代码>
也从基本上是categoryno开始,此示例不起作用。但是您可以使用xpath。例如,如果每对
input
a
都包含在某个节点中(如
div
或其他任何内容),则可以使用另一个xpath,如下所示:
xpath=“//a[以(text(),%s)]/../input”%category
,您将得到所需的复选框。