1

ändern Ich habe meine Anmeldeinformationen verloren .. so erstelle ich diesen neuen Thread. Die alte Frage hier, wenn es hilft: How to click a button to vote with pythonWie Element Element Attributwert mit Selenium

Ich mag würde diese Zeile ändern:

<a data-original-title="I&nbsp;like&nbsp;this&nbsp;faucet" href="#" class="vote-link up" data-faucet="39274" data-vote="up" data-toggle="tooltip" data-placement="top" title=""><span class="glyphicon glyphicon-thumbs-up"></span></a> 

dazu:

<a data-original-title="I&nbsp;like&nbsp;this&nbsp;faucet" href="#" class="vote-link up voted" data-faucet="39274" data-vote="up" data-toggle="tooltip" data-placement="top" title=""><span class="glyphicon glyphicon-thumbs-up"></span></a> 

Damit die Abstimmung eingestellt ändert vote-link up-vote-link up voted .

Aber das Problem ist, dass in dieser Website gibt es mehrere Elemente zu stimmen, und das Element "Daten-Wasserhahn" ändert. Wenn ich dieses Skript verwende:

Aber es wird obsiusly nichts gedruckt, weil der erste Attributwert eine andere Nummer hat. Wie kann ich meine Zeile mit der Eingabe der Nummer data-faucet Element auswählen, damit ich sie durch vote-link up voted ersetzen kann?

Ich kann nur Selen tun? Gibt es einen anderen Weg, ohne einen echten Browser zu verwenden?

Wie auch immer, dies ist die Struktur der Webseite:

<html> 
<head></head> 
<body role="document"> 
<div id="static page" class="container-fluid"> 
<div id="page" class="row"></div> 
<div id="faucets-list"> 
<tbody> 
<tr class=""></tr> 
<tr class=""></tr> 
<tr class=""></tr> 
<tr class=""></tr> 
# an infinite number of nodes, until there's mine 
<tr class=""> 
<td class="vote-col"> 
<div class="vote-box"> 
<div class="vote-links"> 
<a class="vote-link up" data-original-title="I like this faucet" href="#" data-faucet"39274" data-vote"up" data-toggle"tooltip" data-placement="top" title=""></a> 

Die Seite ist dies: https://faucetbox.com/en/list/BTC

+0

Wollen Sie mit dem Element zu interagieren, die 'Daten faucet' Attributwert hat' 39274' ?? –

+0

exatly! genau das, was ich tun möchte! –

+0

Versuchen Sie, dann Antwort zur Verfügung gestellt und lassen Sie es mich wissen .. –

Antwort

6

Von Kommentare: -

Haben Sie mit dem Element interagieren wollen, das hat data-faucet Attributwert 39274 ??

exatly! genau das, was ich tun möchte!

sollten Sie versuchen, css_selector wie unten: -

element = driver.find_element_by_css_selector(".vote-link.up[data-faucet = '39274']") 

ok .. jetzt ist es etwas in der Tat wählt, wenn ich (Element) Terminal zeigt drucken: <selenium.webdriver.remote.webelement.WebElement (session="d54ae232-6d42-455f-a130-097be89adf1e", element="{96385594-1725-4843-bfed-d5a4e7b9af41}")>. so jetzt, dass ich ausgewählt habe Wie kann ich "vote-link up" durch "vote-link up voting" ersetzen?

können Sie class ersetzen Attributwert mit execute_script() wie folgt: -

driver.execute_script("arguments[0].setAttribute('class','vote-link up voted')", element) 
+0

ok .. jetzt wählt es etwas in der Tat, wenn ich drucken (Element) Terminal zeigt: . Jetzt, wo ich es ausgewählt habe, wie kann ich "vote-link up" durch "vote-link up voting" ersetzen? –

+0

Versuchen Sie nun mit 'execute_script()' den Attributwert des Elements zu setzen, versuchen Sie es mit einer aktualisierten Antwort und lassen Sie mich wissen –

+0

nur eine andere Sache ... ist es möglich, es mit einer anderen Bibliothek zu tun, die den Firefox-Browser aber nicht öffnet führt alles im Hintergrund aus?Ich will nicht wissen, wie, nur wenn es möglich ist –

Verwandte Themen