2017-11-03 10 views
1

私は、SeleniumとFirefoxを使用してPythonで擦っています。Selenium get_attribute( "id")

私は、次を使用してオブジェクトに私のHREFのを取得することができています:

次のようになり <a>タグの束を返し
HREF = node.find_elements_by_xpath(".//a") # Get the href's under the current node 

<a href="http://example.com" class="" title="The Link" data-ipshover="" data-ipshover-target="http://example.com/?preview=1" data-ipshover-timeout="1.5" id="ips_uid_1234_9"> 
    <span>The Link</span> 
</a> 

返される複数のリンクがありますが、しかし、私が最初のものに焦点を合わせるだけならば:

出力

['__class__', '__delattr__', '__dict__', '__doc__', '__eq__', 
'__format__', '__getattribute__', '__hash__', '__init__', '__module__', 
'__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', 
'__setattr__', '__sizeof__', '__str__', '__subclasshook__', 
'__weakref__', '_execute', '_id', '_parent', '_upload', '_w3c', 
'anonymous_children', 'clear', 'click', 
'find_anonymous_element_by_attribute', 'find_element', 
'find_element_by_class_name', 'find_element_by_css_selector', 
'find_element_by_id', 'find_element_by_link_text', 
'find_element_by_name', 'find_element_by_partial_link_text', 
'find_element_by_tag_name', 'find_element_by_xpath', 'find_elements', 
'find_elements_by_class_name', 'find_elements_by_css_selector', 
'find_elements_by_id', 'find_elements_by_link_text', 
'find_elements_by_name', 'find_elements_by_partial_link_text', 
'find_elements_by_tag_name', 'find_elements_by_xpath', 'get_attribute', 
'get_property', 'id', 'is_displayed', 'is_enabled', 'is_selected', 
'location', 'location_once_scrolled_into_view', 'parent', 'rect', 
'screenshot', 'screenshot_as_base64', 'screenshot_as_png', 'send_keys', 
'size', 'submit', 'tag_name', 'text', 'value_of_css_property'] 
#########  
The Link 
101b851e-67dd-4907-a2da-2dc1828cb09c 
The Link 
http://example.com 
1.5 

######### 

最後の属性の印刷が空白の場合は、ips_uid_1234_9を返す必要があることに注意してください。他のすべての属性が正常に返されるので、なぜ "id"が正しく返されないのか分かりません。

+0

最初のハイパーリンクにはIDがありますか? –

+0

ポジティブ。リンクテキストとハイパーリンクは、私が見ているHTMLと一致します。また、get_attributeで存在しない属性を選択すると、 "None"が返され、空白のUnicode文字列は返されません。 – user3246693

+0

私は重複IDと異なるIDで試しました。どちらの場合も正しく動作しました。あなたは掻爬しているウェブサイトですか?ウェブサイトは、実行中にJavaScriptを使用してIDを変更している可能性があります。 –

答えて

0

私はナックルヘッドです。次回は、同じブラウザを使用してソースコードをスクラップして表示する必要があります。属性はFirefoxでは読み込まれませんが、Chromeで読み込まれます。

関連する問題