質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Q&A

解決済

1回答

305閲覧

seleniumを使ってブログ投稿をしたいです。エラーが出ることもなくコードは進むのですが投稿が保存されません。

monmon2

総合スコア17

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

0グッド

0クリップ

投稿2022/05/25 00:14

下記のコードでエラーは出ないのですが、投稿内容が保存されません。

ブラウザで手動操作の場合、投稿送信ボタンを押すと管理画面に戻るのですが、
seleniumで開いたブラウザで送信ボタンを押すと、ブログのトップ画面を開いてしまいます。
投稿ボタン後の開かれる画面が違います。

また、ブラウザで手動操作の場合、数字パスが正しく入力されていないと送信ボタンを押しても投稿できないのですが、seleniumで開いたブラウザでは数字パスが正しく入力されていなくても、送信ボタンが押せてしまいます。

知識はないのですが、開かれるURLの構造が違うのかなと思ってみたり、、
完全にお手上げ状態です。

分かりにくいかと思いますが、どなたか教えていただきたいです。

python

1 2URL = 'http://eroerotijyomusme.blogterest.net/kanri/page/edit/' 3 4driver.get(URL) 5driver.implicitly_wait(30) 6 7element_input = driver.find_element(By.CSS_SELECTOR, '#mail').send_keys(add) 8element2_input = driver.find_element(By.CSS_SELECTOR, '#pass').send_keys(paslog) 9ele_send = driver.find_element(By.CSS_SELECTOR, '#content > div > div.col-md-5.col-md-push-4 > div.mainContent > div > div > form > div.itemFoot > div > input').click() 10 11 12driver.get(URL) 13original = ws['B' + str(n)].value 14title = ws['C' + str(n)].value 15video_url = ws['G' + str(n)].value 16 17content_ = (ws['H' + str(n): 'I' + str(n)]) 18for i in content_: 19 for c in i: 20 body.append(c.value) 21 else: 22 try: 23 content_ = ''.join(body) 24 except: 25 content_ = ws['I' + str(n)].value 26 27tag_ = ws['J' + str(n)].value 28 29webbrowser.open(video_url,2) 30try: 31 webbrowser.open(original,2) 32except Exception as e: 33 pass 34 35 36title_element= driver.find_element(By.CSS_SELECTOR, '#pagetitle').send_keys(title) 37check = driver.find_element(By.CSS_SELECTOR, '#movieurl').send_keys(video_url) 38check_buttun = driver.find_element(By.CSS_SELECTOR, '#titleCheckBtn').click() 39 40resu = driver.find_element(By.CSS_SELECTOR, '#titleCheckResult > div.alert.alert-danger') 41resu.text == '' 42 43link_ = driver.find_element(By.CSS_SELECTOR, '#pageEditForm > div:nth-child(4) > div > input.form-control.ime-inactive') 44driver.execute_script("arguments[0].scrollIntoView(true);", link_) 45link_.send_keys(video_url) 46 47tags = driver.find_element(By.CSS_SELECTOR, '#tags ') 48driver.execute_script("arguments[0].scrollIntoView(true);", tags) 49tags.send_keys(tag_) 50 51contents = driver.find_element(By.CSS_SELECTOR, '#mceu_15 > button') 52driver.execute_script("arguments[0].click();", contents) 53code_body = driver.find_element(By.CSS_SELECTOR, '#mceu_30').send_keys(content_) 54 55ok_buttun = driver.find_element(By.CSS_SELECTOR, '#mceu_32 > button') 56driver.execute_script("arguments[0].scrollIntoView(true);", ok_buttun) 57ok_buttun.click() 58#driver.execute_script("arguments[0].click();", ok_buttun) 59 60num_pass = driver.find_element(By.CSS_SELECTOR, '#pageEditForm > div:nth-child(10) > div > p.lead') 61num_pass = str(num_pass.text) 62 63result = (num_pass.replace('0','0').replace('れい','0').replace('ゼロ','0').replace('ぜろ','0').replace('〇','0').replace('1','1').replace('イチ','1').replace('いち','1').replace('一','1').replace('壱','1').replace('2','2').replace('に','2').replace('二','2').replace('弐','2').replace('3','3').replace('さん','3').replace('サン','3').replace('三','3').replace('参','3').replace('4','4').replace('よん','4').replace('ヨン','4').replace('四','4').replace('5','5').replace('ご','5').replace('ゴウ','5').replace('ゴ','5').replace('GO','5').replace('五','5').replace('6','6').replace('ろく','6').replace('ロク','6').replace('六','6').replace('7','7').replace('なな','7').replace('ナナ','7').replace('七','7').replace('8','8').replace('はち','8').replace('ハチ','8').replace('八','8').replace('9','9').replace('キュウ','9').replace('きゅう','9').replace('Q','9').replace('九','9')) 64 65text = result 66 67driver.find_element(By.CSS_SELECTOR, '#suuji_pass').send_keys(text) 68time.sleep(1) 69sub_mit = driver.find_element(By.XPATH, '//*[@id="pageEditForm"]/div[11]/div/input').submit() 70

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

自己解決

起動済のブラウザをseleniumで操作することで解決しました。

投稿2022/05/25 08:41

monmon2

総合スコア17

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問