おはようございます、私は私の同僚の一人が作成したスクリプトの1つに問題がありました。メソッド()は3つの位置引数を取るが、4つは与えられた
主なポイントは、それに我々はmousehoverアクションを容易にするために、いくつかの方法、および他のいくつかの機能を持っている、のpythonのユーザビリティの一部を拡張するラッパードライバを持っていたことに、私たちは
Class SuperDriver:
def __init__(self, driver: object) -> object:
self._driver = driver
def wait_and_get(self, mode, key):
return WebDriverWait(self._driver, self.WAIT_TIMEOUT).until(EC.visibility_of_element_located((mode, key)))
def wait_and_move_to(self, mode, id):
elem = self.wait_and_get(self._driver, mode, id)
ActionChains(self._driver).move_to_element(elem).perform()
のようなものを持っています
私は別のスクリプトでそれを使用しようとすると、私は
from utils.super_driver.SuperDriver import SuperDriver
Class class1:
def class1_test(self):
sd1 = Superdriver(driver)
sd1.wait_and_move_to(driver, By.XPATH, xpath)
に行くと、それは
語ります私はTypeError: wait_and_move_to() takes 3 positional arguments but 4 were given
sd1.wait_and_move_to(By.XPATH, xpath)
この時点で試してみた
これは
TypeError: wait_and_move_to() missing 1 required positional argument: 'id'
sd1.wait_and_move_to(self, By.XPATH, xpath)
をもたらし、この1つは
の結果TypeError: wait_and_get() takes 3 positional arguments but 4 were given
sd1.wait_and_move_to(xpath)
を言いました
TypeError: wait_and_move_to() missing 1 required positional argument: 'id'
私の心から出てきたものは何もありませんでしたが、何もうまくいかなかったので、いくつかの助けに感謝します。
ありがとうございます!
sd1.wait_and_move_to(By.XPATH, xpath)
sd1
が暗黙のうちに最初の引数として渡されたオブジェクトとあなたがの行番号を見ていた場合、def wait_and_move_to(self, mode, id):
しかしこの方法ではself
を次のようになります。
@Andersson何故、偶然にプログラミングするのではなく、何を考えようとしていますか? –
'wait_and_move_to()'は暗黙の 'self'と2つの引数をとるので、あなたの最初の例は正しいです。しかし、 'wait_and_move_to()'の 'self.wait_and_get(self._driver、mode、id)'の呼び出しには余分なパラメータがあり、 'self.wait_and_get(mode、id)'だけが必要です。 – AChampion
「私は、私の心の中から出てきたものを(...)試しました。これはあなたが学ぶ方法ではありません。エラーメッセージとコード(とあなたが使っている言語)を分かりやすくすることがより良い戦略です...また、2番目の呼び出しの例( 'sd1.wait_and_move_to(By.XPATH、xpath)')は、あなたが投稿したエラーメッセージと、「何も働いていません」とは、問題の最も無駄な記述です。 –