1. ホーム
  2. python

[解決済み] webdriverで要素にスクロールする?

2023-01-29 01:54:49

質問

私はまだ勉強中ですが、ある質問に対する回答です。 ここで という質問に対して、「問題の要素が表示されていないからではないか」と言われました。

ドキュメントとSOに目を通しましたが、ここが最も適切な回答でした。 ここで

要素に移動するために "org.openqa.selenium.interactions.Actions" クラスを使用することができます。

WebElement element = driver.findElement(By.id("my-id"));
Actions actions = new Actions(driver);
actions.moveToElement(element);
## actions.click();
actions.perform();

上記で要素までスクロールしようとすると WebElement not definedと表示されます。

私はこれが私が関連するモジュールをインポートしていないためであると思います。誰か私がインポートすることになっているものを指摘することができますか?

編集します。 alecxeによって指摘されたように、これはJavaコードでした。

しかし、その一方で、しばらくそれを理解しようとした直後に WebElementのimportメソッドがわかりました。

from selenium.webdriver.remote.webelement import WebElement

私のような者の助けになるかもしれない。

How of itもいい勉強になりますね、IMO。

に行きました。 ドキュメンテーション

class selenium.webdriver.remote.webelement.WebElement(parent, id_, w3c=False)

上記のコマンド形式に分離する必要がある。

どのように解決するのですか?

PythonでJavaのコードを実行しようとしています。Python/Seleniumでは、Javaのコードを実行するために org.openqa.selenium.interactions.Actions が反映されるのは ActionChains クラス :

from selenium.webdriver.common.action_chains import ActionChains

element = driver.find_element_by_id("my-id")

actions = ActionChains(driver)
actions.move_to_element(element).perform()

また、以下の方法でスクロールして表示することもできます。 scrollIntoView() :

driver.execute_script("arguments[0].scrollIntoView();", element)

違いに興味がある方は