2017-05-07 59 views
0

我使用Python /硒與鉻webdriver的,我試圖找回根據其他<td>內容從一個<td>的URL。我的標記看起來像:傳遞字符串從JS到Python硒

<div class="targetclass"> 
    <tr> 
     <td><a href="[email protected]">emailval2</a></td> 
     <td><a href="[email protected]">emailval</a></td> 
    </tr> 
</div> 

這是很容易與jQuery和腳本執行:

with open('jquery-3.2.1.min.js', 'r') as jquery_js: 
    jquery = jquery_js.read() #read the jquery from a file 
    driver.execute_script(jquery) # activate the jquery lib 
    driver.execute_script("$('div.targetclass a[href$=\"[email protected]\"]').parents(\"tr\").find(\"a:first\").attr('href')") 

然而,當我嘗試存儲返回HREF與webdriver的使用,我有以下結果:

aurlval = driver.execute_script("$('div.targetclass a[href$=\"[email protected]\"]').parents(\"tr\").find(\"a:first\").attr('href')") 
print (aurlval) 

返回的值是

None 

如何存儲目標網址([email protected]),以便我可以使用webdriver操作它?

回答

1

我與硒的經驗僅限於一些特殊情況下,我想一些自動化(刮我可以正常使用要求和BeautifulSoup獲得通過),但我相信原因你得到是因爲execute_script不返回一個開始的值(你的腳本基本上只是被注入網頁並在瀏覽器中執行)。 IIRC,你應該能夠分析出你了jQuery(冗長):

div = driver.find_element_by_class_name("targetclass") 
targeta = div.find_element_by_link_text("[email protected]") 
tr = targeta.parent.parent 
retrieve = tr.find_element_by_tag_name("a") 
aurlval = retrieve.getattribute("href") 

我不記得我的頭頂,如果硒對名單VS第一要素不同的方法,所以你可能有在這些線上採取零指數。

+0

我打在.parent行路障,我想這是因爲.parent在硒使用不同。它看起來像我可能需要xpath來實現這一點。 – Marcatectura