前提・実現したいこと
google chorme でpython selenium を使用して、webページをクローリングしようと考えています。
入りたいページのxptah・elementはこのような感じです。
【xpath】
/html/body/form/table/tbody/tr[1]/td[4]/a
【element】
<a href="javascript:doEdit('408843');">
<!-- var sStrFmt; sStrFmt=tableFormat('にんにく',33); document.write(sStrFmt); --><script language="JavaScript">
</script>にんにく
</a>
このため、私はこのようなcodeを作成しました(いろいろ作ってみましたが一番いいのかな?と思ったものをあげてみました、すいません)。
driver.find_element_by_xpath("//a[@herf = 'javascript:doEdit('408843');']").click();
ここで通常どおりxapthをそのまま引用しなかったのは、それだと違うelementも同一のxpathになってしまっていたからです。
また、遷移先のurlを直接指定していないのも、上記と同じように、違うelementだけれどもそれをクリックした先のurlが同じになっているからです。(例えば、元のページ(url末尾1)⇒遷移したいページ(末尾2)。でも、元ページに記載してあるほかのリンク先も遷移したいページとおなじ(末尾2)になっている。)
しかし、次のようなエラーが発生してしまいました。
selenium.common.exceptions.InvalidSelectorException: Message: invalid selector: Unable to locate an element with the xpath expression //a[@herf = 'javascript:doEdit('408843');'] because of the following error:
SyntaxError: Failed to execute 'evaluate' on 'Document': The string '//a[@herf = 'javascript:doEdit('408843');']' is not a valid XPath expression.
一応googleで検索したり、過去の質問でもよく載せていただいているhp(https://kurozumi.github.io/selenium-python/locating-elements.html)も見てみましたがよく分かりませんでした。
質問するにあたって情報が足りているかも判断がつかずに申し訳ないのですが、次のページを選択するためにはどうすればよいのかお知恵を貸していただけると助かります。どうぞよろしくお願いします。
回答4件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/12/31 00:56