私が見つけたバグを2日間記録し、それに固執すれば、問題は最終的に解決されます。

ここに画像の説明を挿入します
背景:ユースケースの実行中に、エラー「str」には属性「findele」が報告されていません、
解決策:
(1)最初に、click()メソッドが呼び出されてエラーが報告され、エラーは報告:「str」には属性「
findele 」がありません。(2)2つの神を試し、さまざまな方法で何度も試し、最終的にfindeleの問題を特定し、>>>このメソッドを個別にデバッグします。後で、私はまだエラーを報告しました、そして私が考えを持ったとき、私は次のようにメソッド内のすべての
サンギャンのものを削除しました:def findele(self、* args):
return self.driver.find_element(* args)そしてあります
残ったのは1つだけでした。このエラーを報告せず、最終的に解決しました。本当に酔っていました。異常な判断を加えた後にエラーが報告された理由については、引き続き検索してください。
(2)次に、エラーが報告されました: "str"には属性 "driver"がありません
次に、呼び出し元のメソッドによって返されたreturn self.driver.find_element(* args)のドライバーが無効であり、メソッドがfindeleを認識できませんでした。何をすべきかを識別するために、最初にこのメソッドのクラスを継承する必要があります。継承後、インスタンスはself.findeleを呼び出し、正常に渡されます。心が急上昇している
ここに画像の説明を挿入します

(3)次に、click()を続行し、エラーが続くことを確認します。selenium.common.exceptions.InvalidArgumentException:メッセージ:無効な引数:「using」は文字列である必要があります。これは、文字列を使用する必要があることを意味します
(4)click()の変数を* argsに変更します。問題は解決しました:
#要素を
クリックしますdef click(self、* args):
return self.findele(args).click ()
(5)今日、sendkey()メソッドを呼び出したところ、エラーが報告されました:2つの変数を定義するように求められましたが、3つの変数を入力しました。解決策:
最初の2つの変数をタプルに変更します。入力2変数に注意してください。メソッドの変数は
argsです。例:
def sendkey(self、args、value):
self.findele(* args).send_keys(value)
call:send_key((By.Id、 " kw ")、 'Jiao')、最初の2つの変数はタプルです

おすすめ

転載: blog.csdn.net/weixin_45451320/article/details/112854261