2017-07-30 80 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 

讓我知道如果這個回答你的問題。