如何使用Selenium python获取基于HTML数据的HTML索引?

时间:2019-02-25 10:14:12

标签: javascript python selenium-webdriver

我对硒很陌生,我想单击动态网站包含的折叠选项卡。我正在使用

//a[@href[contains(.,"Text")]] 

用于在页面中搜索文本。假设我得到3个包含此文本的标签。我正在使用

get_attribute('outerHTML') 

并使用正则表达式获取HTML内容并获取类名称,但是当我使用javascript发送click事件时,它将单击该类下的所有标签,因此我需要使用文本查询找到的该HTML标签的索引。如何获取索引?

这是HTML:

<div class="col-12 col-md-8">

法国公开赛2019        15:30ATP迪拜中央法院:贝兰基斯vs梅德韦杰夫        15:30ATP迪拜球场1:杰拉西莫夫vs哈斯        15:30ATP迪拜法院3:贝雷蒂尼vs库德拉        16:00雅克vs科拉尔        17:00ATP迪拜法院1:萨夫瓦特vs巴格达蒂斯        17:00ATP迪拜法院3:胡卡兹vs穆特        17:30ATP迪拜中心球场:锦织vs配对        18:30ATP迪拜法院1:伯蒂奇vs伊瓦什卡        19:00佩尔/桑奇奇vs格拉诺列尔斯/米德勒        19:00艾瑟里克/埃尔南德斯vs邦兹/哈利斯        19:00ATP圣保罗中心球场:坂本vs穆纳尔        19:00ATP圣保罗法院1:马特勒/米斯vs马孔德斯/马托斯        20:00ATP迪拜法院1:科里奇vs库库什金        20:30W。冈萨雷斯/ Voljacques vs Margaroli / Vavassori        20:30ATP迪拜中心球场:西里奇vs蒙菲尔斯        20:30ATP圣保罗中心球场:洛伦兹vs隆德罗        20:30ATP圣保罗球场1:马丁内斯vs德里安        21:00萨菲林vs布朗        22:00Torpegaard vs伊梅尔        22:00ATP迪拜中心球场:埃布登vs齐齐帕斯        22:00ATP圣保罗中心球场:巴格尼斯vs拉莫斯·维诺拉斯        22:00ATP圣保罗法院1:杰巴维/莫尔蒂尼vs卡巴莱斯·贝纳/贾齐里        23:00巴雷雷vs瑟达鲁西奇        23:30菲涅斯/雅克vs贝格曼/朱奈德        23:30ATP圣保罗中心球场:贝鲁奇/杜特拉·席尔瓦vs迈耶/索萨        23:30ATP圣保罗法院1:马雷罗/奥斯瓦尔德vs德尔博尼斯/冈萨雷斯        2019年2月27日    00:30Gombos vs斯塔霍夫斯基        01:00ATP圣保罗法院1:奎瓦斯/泽瓦洛斯vs德莫林纳/尼尔森        02:00乔因斯基vs帕夫拉斯克        02:00ATP圣保罗球场1:阿内奥多/奈斯vs阿雷瓦洛/切雷塔尼        03:00ATP圣保罗中心球场:塞伯斯·维尔德vs伊梅尔        04:30ATP圣保罗中心球场:Ruud vs T. Monteiro    

1 个答案:

答案 0 :(得分:0)

如果您要访问不止一次的元素,则可以使用for循环或Index。根据您的声明,您需要照顾索引。在这里,您可以继续。

driver.find_element_by_xpath('(//a[@href[contains(.,"Text")]])[0]') //where Index zero for 1st element. 

通过这种方式,您可以根据要单击的元素来增加索引值。