Wenn Sie die Scraping-Verarbeitung mit Selenium of Ruby schreiben, gibt es eine Szene, in der Sie den Attributwert wirklich ändern möchten. Es wird nicht verwendet, wenn Sie das Verhalten der Benutzeroberfläche genau verfolgen möchten. Es ist jedoch effektiv, wenn Sie das Verhalten der Benutzeroberfläche kennen und die mühsame Verarbeitung überspringen und sofort die gewünschte Verarbeitung wünschen.
Der Zugriff auf Attribute in Ruby findet SetAttribute nicht, obwohl GetAttribute vorhanden ist. (Es kann eine Frage der Suche sein.) Get ändert das DOM nicht, aber ich denke, dass es nicht vorbereitet ist, da es zu unerwartetem schriftlichem Verhalten führen kann. Daher werde ich dieses Mal "execute_script" verwenden. Benutzen.
execute_script.rb
#Treiberinitialisierung
client = Selenium::WebDriver::Remote::Http::Default.new
driver = Selenium::WebDriver.for :chrome, http_client: client
#<div id="mw-content-text" lang="ja" dir="ltr" class="mw-content-ltr">
#Ich möchte ja in en ändern
#Holen Sie sich das Zielelement
target_element = driver.find_element(:class_name, 'mw-content-ltr')
driver.execute_script("arguments[0].setAttribute('lang', 'en');", target_element)
https://www.rubydoc.info/gems/selenium-webdriver/0.0.28/Selenium%2FWebDriver%2FDriver:execute_script
Recommended Posts