セレンマウスクリック
マウスクリックはに分けることができます
- click()をクリックします
- ダブルクリックdouble_click()
- context_click()を右クリックします
- click_and_hold()を離さずにマウスの左ボタンをクリックします
。ここで、Baiduの例を例として取り上げます。
from selenium import webdriver
from selenium.webdriver.common.by import By
drive=webdriver.Chrome()
drive.get('https://www.baidu.com/')
SubmitBut=drive.find_element(By.XPATH,'//input[@type="submit" and @value="百度一下"]')
SubmitBut.click()
次に、マウスを使用します
1.関連するライブラリをインポートします
2.マウスオブジェクトを作成します
3.関連する操作を実装します
次に、コードを使用してそのような関数を実装します(Baidu検索タブを右クリックします)
コードは以下のように表示されます
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.action_chains import ActionChains#####
drive=webdriver.Chrome()
drive.get('https://www.baidu.com/')
SubmitBut=drive.find_element(By.XPATH,'//input[@type="submit" and @value="百度一下"]')
action_mouse=ActionChains(drive)######
action_mouse.move_to_element(SubmitBut).context_click().perform()######
終わらせる
マウス動作
drag_and_drop(A、B)AをBにドラッグ
drag_and_drop_by_offset(source、x、y)Aを特定の位置にドラッグします
move_by_offset(x、y)マウスを現在の位置から特定の座標に移動します
move_to_element(to_element)マウスを要素に移動します
move_to_element_with_offset(A、x、y)は、A要素からの距離の位置(左上隅の座標)に移動します
perform()はチェーン内のすべてのアクションを実行します
release(on_element = None)要素の位置でマウスの左ボタンを離します(clic_and_hold()で使用)
send_keys( 'python')キーボードから 'python'を送信して文字を入力し、文字キーの押下をシミュレートします
send_keys_to_element(At、 'python') 'python'をAに送信します
ここにいくつかの例がありますが、他の操作方法は同じです
(例を示すための対応するウェブサイトが見つからないため、疑似コードを使用してデモンストレーションし、後で例を記述します)。
from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains
driver = webdriver.Firefox()
driver.implicitly_wait(10)
driver.maximize_window()
driver.get('URL')
dragger = driver.find_element_by_id('dragger') # 被拖拽元素
A = driver.find_element_by_xpath('') # 目标A
B = driver.find_element_by_xpath('') # 目标B
action = ActionChains(driver)
action.drag_and_drop(dragger, A).perform() # 移动dragger到目标A
action.click_and_hold(dragger).release(A).perform() # 效果与上句相同,也能起到移动效果
action.click_and_hold(dragger).move_to_element(A).release().perform() # 效果与上两句相同,也能起到移动的效果
# action.drag_and_drop_by_offset(dragger, 400, 150).perform() # 4.移动到指定坐标
action.click_and_hold(dragger).move_by_offset(400, 150).release().perform() #与上一句相同,移动到指定坐标
頻繁に使用されるアラート
1. drag_and_drag_by_offset(A、x、y)は、通常、スライダーの検証に使用されます。2。move_by_offset(x、y)
の原点座標は、前の移動の終点が次回の原点であるということです。つまり、座標には相加効果があります。
キーボードイベント
これはマウスと組み合わされ、「スペース」キーなどの特定のキーを使用する必要がある場合があります。
key_down(value、element = None)キーボードのキーを押します
key_up(value、element = None)キーを解放します
以下は具体例です。(偽のコード)
from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.common.keys import Keys
driver = webdriver.Firefox()
driver.implicitly_wait(10)
driver.maximize_window()
driver.get('URL')
dragger = driver.find_element_by_id('dragger') # 被拖拽元素
A = driver.find_element_by_xpath('') # 目标A
INPUT = driver.find_element_by_xpath('') # 目标B
action = ActionChains(driver)
action.key_down(Keys.CONTROL).send_keys('a').key_up(Keys.CONTROL).perform() # ctrl+a
action.key_down(Keys.CONTROL).send_keys('c').key_up(Keys.CONTROL).perform() # ctrl+c
action.key_down(Keys.CONTROL,INPUT).send_keys('v').key_up(Keys.CONTROL).perform() # ctrl+v
action.move_to_element(INPUT).key_down(Keys.CONTROL).send_keys('v')key_up(Keys.CONTROL).perform()#和上一个一样 ctrl+v
実際の例
生と死の狙撃兵の着陸の例(真剣に笑わないでください)
座標を取得する方法を示しましょう
コードは次のように表示されます。
from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains
driver=webdriver.Chrome()
driver.maximize_window()
enter_url='https://ssjj.4399.com/'
driver.get(enter_url)
actions=ActionChains(driver)
actions.move_by_offset(550,370).click().send_keys('865989840')
actions.move_by_offset(-550,-370)#归位
actions.move_by_offset(550,400).click().send_keys('mima')
actions.move_by_offset(-550,-400)
actions.move_by_offset(530,475).click()
actions.move_by_offset(-530,-475).perform()
actions.move_by_offset(400,350).click().perform()
効果
(ちなみに署名しました。Chromeは現在フラッシュをサポートしていません。特別な変更がない場合、フラッシュを自動的に実行することはできません。もちろん、変更できます。この建物で説明されていないチュートリアルについては、WeChatパブリックアカウントを検索してください。 )