PythonではWebアプリを作る事が出来るプログラミング言語です。
もちろんGoogleのブラウザChromeも操作する事が出来るのですが、思う通りに動かすにはチョッとしたクセがあったりします。
例えばChromeで開いたサイトにあるボタンを押す時に、そのボタンがスクロールが必要な画面外にあったりするとエラーが起こったり…
今回は「画面外のボタンを押す」を行う方法を記しておきます。
ボタンを押すPHPを用意
まずは実験用にPHPファイルを用意
<html>
<head>
</head>
<body>
ボタンは押せた?
<?php
if(isset($_POST["submit"]))
{
print("Yes");
}
else
{
print("No");
}
?>
<br> <br> <br> <br> <br> <br> <br> <br> <br> <br>
<br> <br> <br> <br> <br> <br> <br> <br> <br> <br>
<br> <br> <br> <br> <br> <br> <br> <br> <br> <br>
<br> <br> <br> <br> <br> <br> <br> <br> <br> <br>
<br> <br> <br> <br> <br> <br> <br> <br> <br> <br>
<br> <br> <br> <br> <br> <br> <br> <br> <br> <br>
<br> <br> <br> <br> <br> <br> <br> <br> <br> <br>
<br> <br> <br> <br> <br> <br> <br> <br> <br> <br>
<br> <br> <br> <br> <br> <br> <br> <br> <br> <br>
<br> <br> <br> <br> <br> <br> <br> <br> <br> <br>
<br> <br> <br> <br> <br> <br> <br> <br> <br> <br>
<br> <br> <br> <br> <br> <br> <br> <br> <br> <br>
<br> <br> <br> <br> <br> <br> <br> <br> <br> <br>
<br> <br> <br> <br> <br> <br> <br> <br> <br> <br>
<br> <br> <br> <br> <br> <br> <br> <br> <br> <br>
<br> <br> <br> <br> <br> <br> <br> <br> <br> <br>
<form method="POST">
<input type="submit" id="submit" name="submit">
</from>
</body>
</html>
ボタンを押すPHPを用意
次に実行するPythonのファイルを用意
# -*- coding: utf-8 -*-
import os
import time
from selenium import webdriver
from selenium.webdriver.support.select import Select
#-------------------------------------------
#chromeを開く
driver = webdriver.Chrome()
driver.get("https://program1616.net/php/test01.php")
#ボタンを取得
elem = driver.find_element_by_id('submit')
time.sleep(10)
print("ボタンを押す")
elem.click()
time.sleep(10)
#ブラウザ閉じる
driver.quit()
print("-----End------")
このファイルを実行してPHPファイルのボタンを押します。
PythonでGoogleのブラウザChromeの画面外のボタンを押す
ボタンを押せない場合は下記のようにJavascriptで押すよう修正します。
print("ボタンを押す")
#elem.click()
driver.execute_script('arguments[0].click();',elem)
time.sleep(10)
これでボタンが押せるようになります。