前提
PythonのSeleniumでSNSに自動投稿するアカウントを作っています。
Python超初心者です。
初歩的な質問をしていたら申し訳ございません。
実現したいこと
発生している問題・エラーメッセージ
Traceback (most recent call last): File "X:\pysc\yay4n.py", line 249, in <module> element_write = driver.find_element_by_xpath('//input[@accept="image/*,.jpg,.jpeg,.png,.gif"][@mutiple=''][@type="file"][@tabindex="-1"][@style="display: none;"]') ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\ユーザー名\AppData\Local\Programs\Python\Python311\Lib\site-packages\selenium\webdriver\remote\webdriver.py", line 394, in find_element_by_xpath return self.find_element(by=By.XPATH, value=xpath) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\ユーザー名\AppData\Local\Programs\Python\Python311\Lib\site-packages\selenium\webdriver\remote\webdriver.py", line 976, in find_element return self.execute(Command.FIND_ELEMENT, { ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Users\ユーザー名\AppData\Local\Programs\Python\Python311\Lib\site-packages\selenium\webdriver\remote\webdriver.py", line 321, in execute self.error_handler.check_response(response) File "C:\Users\ユーザー名\AppData\Local\Programs\Python\Python311\Lib\site-packages\selenium\webdriver\remote\errorhandler.py", line 242, in check_response raise exception_class(message, screen, stacktrace) selenium.common.exceptions.InvalidSelectorException: Message: invalid selector: Unable to locate an element with the xpath expression //input[@accept="image/*,.jpg,.jpeg,.png,.gif"][@mutiple=][@type="file"][@tabindex="-1"][@style="display: none;"] because of the following error: SyntaxError: Failed to execute 'evaluate' on 'Document': The string '//input[@accept="image/*,.jpg,.jpeg,.png,.gif"][@mutiple=][@type="file"][@tabindex="-1"][@style="display: none;"]' is not a valid XPath expression. (Session info: chrome=109.0.5414.120)
該当のソースコード
Python
1img2 = cv2.imread('view.png') 2 3element_writepc = driver.find_element_by_xpath('//input[@accept="image/*,.jpg,.jpeg,.png,.gif"][@mutiple=''][@type="file"][@tabindex="-1"][@style="display: none;"]') 4element_writepc.send_keys(img2)
html
1<div class="PostBox__wrapper"> 2 <div role="presentation" tabindex="0"> 3 <input accept="image/*,.jpg,.jpeg,.png,.gif" multiple="" type="file" tabindex="-1" style="display: none;">
試したこと
SNSの投稿枠に画像をドラッグすると、input要素の下に
html
1<div class="PostBox__dropzone">投稿したい写真をドラッグドロップしてください。</div>
が出現するのですが、そこに
Python
1element_writepc = driver.find_element_by_class_name('PostBox__dropzone') 2element_writepc.send_keys(img2)
で画像を送っても、
selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {"method":"css selector","selector":".PostBox__dropzone"}
となってしまいました。
自分なりにネットで調べましたが、解決できませんでした。
(追記)@mutiple=''を@mutiple=""にしても変わりませんでした。
補足情報(FW/ツールのバージョンなど)
Python 3.11.1
Selenium 3.141.
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2023/01/28 03:25