2017-10-10 8 views
0

ウェブページのソースからいくつかのリンクをクリックするためにセレンを使用しようとしています。これは私がこれまでに得たものである:これは、次のエラーが発生しセレンはhrefハイパーテキストを認識できません

import selenium, time 
import html5lib 
from bs4 import BeautifulSoup 
from selenium import webdriver 
from selenium.webdriver.common.action_chains import ActionChains 
from selenium.webdriver.common.keys import Keys 
pg_src = br.page_source.encode("utf") 
soup = BeautifulSoup(pg_src) 
br = webdriver.Chrome() 

url = "http://somewikipage.org" 

br.get(url) 

lnkLst = soup.find_all("a", href=re.compile(",_California") # this builds a list with everything in the a href tag 

nuLst = [] 

for i in lnkLst: 

    nuLst.append(i.get('href')) #this removes all the unclickable text from the a href tag 

for i in nuLst: 

    br.find_element_by_link_text(i).click() 

:私はnuLstをプリントアウトしてきた各項目が正確にHREFタグ内のハイパーリンクにマッチし

AttributeError: 'list' object has no attribute 'click' 

。私はfind_element_by_xpathを使う前に似たようなことをしましたが、このグループのCSSセレクタをページ上の他のすべてのHREFを呼び出さずに分離する方法がわかりません。

+0

私はエラーと思う:br.find_element_by_link_text(i)、引数:iはリンクのテキストではなく、リンクのテキストです。リンクテキストをhrefでなくnuLstに追加する必要があります:nuLst.append(i.get( 'href')) – yong

答えて

0

AttributeError: 'list' object has no attribute 'click'

ウェブ要素のリストからウェブ要素をクリックするのではなく、オブジェクトのリスト(クリック方法はありません)をクリックしようとしています。すべてのリンク

list = driver.find_elements_by_xpath("//a")//Note, there is 'elements' not element 

のウェブ要素の

まずGETリストには、今すぐあなたの要件ごとに、このリストを反復。

+1

コードを使用して要素のリストを取得しましたが、クリックアクションはまだ機能しませんでした。私はforループを使い、iterableからurlを構築してからbr.get(url)を使いました。これは私に必要なものを手に入れました。 – ShaunO

+0

それは素晴らしいです。あなたは私の上記の答えにそれらを編集し、それが他の人に役立つように正しいとマークすることができます。 –

関連する問題