2017-07-30 73 views
2

我正在尝试为我的雇主自动执行一些下载。我用python和chromedriver使用硒。无法通过文本点击div元素

我被困在点击这个div元素,这是一个JavaScript下拉的一部分。

<div class="item " idx="2" style="" title="">N53AC : BABY MILK UP TO 6 MONTHS</div> 

我已经能够通过在Internet Explorer中查找innerText属性来使用vbscript单击此按钮。

我已经试过这

elemf = driver.find_elements_by_tag_name("div") 

for element in elemf: 
    #print(element.get_attribute("innerhtml")) 
    if element.get_attribute("innerhtml")=="N53AC : BABY MILK UP TO 6 MONTHS" or element.get_attribute("innertext")=="N53AC : BABY MILK UP TO 6 MONTHS" or element.text=="N53AC : BABY MILK UP TO 6 MONTHS": 
     element.click() 

任何线索?我是一个完整的html新手。

+0

你能发布一个链接到网页吗?我会建议复制按钮的xpath并使用'driver.find_element_by_xpath()' – DJK

+0

你能共享异常日志吗?顺便说一句,你应该使用'innerHTML'而不是'innerhtml'和'innerText'而不是'innertext'。也可以尝试'XPath''//div[.="N53AC:BABY MILK最多6个月]“' – Andersson

+0

尝试'if'N53AC'in element.text:...' –

回答

0

这里是回答你的问题:

的主要问题在你的代码是你想find_elements_by_tag_name("div");这将是对当前HTML DOM无数。相反,你需要将搜索缩小到类似:

elemf = driver.find_elements_by_xpath("//div[@class='item ']"); 

现在,我们可以进入一个循环,并呼吁click()方法如下:

for element in elemf: 
    my_attribute = element.get_attribute("innerHTML") 
    if my_attribute == "N53AC : BABY MILK UP TO 6 MONTHS" 
     element.click() 
     break 

让我知道如果这个回答你的问题。