1. 程式人生 > >在selenium中一些相對常用的JavaScript事件

在selenium中一些相對常用的JavaScript事件

指定元素 executor 滑動 輸入 其中 對齊 key tex 應用

輸入框輸入:

1.找到輸入框的id,然後進行輸入操作

ordinal :輸入框的id

parameter :需要輸入的內容

 browser.execute_script("document.getElementById(\‘" + ordinal + "\‘).value=\‘" + parameter + "\‘;")

元素點擊:

1..找到元素(selenium找元素的8種方式的其中一種即可)對象然後進行點擊

python:

prompt該元素在頁面中的cssSelector

confirm = browser.find_element_by_css_selector(prompt)
browser.execute_script(
"arguments[0].click();", confirm)

java:

1.定義JavascriptExecutor 對象
2.找到element 對象
3.執行js指令
JavascriptExecutor jse = (JavascriptExecutor) driver;
WebElement element = driver.findElement(By.xpath("//*[@class=‘referBtn‘]/input"));
jse.executeScript("arguments[0].click();", element);

2.通過元素id進行點擊

prompt:該元素在頁面中的id
browser.execute_script(
"document.getElementById(\‘" + prompt + "\‘).click();")

光標移動:

1. 光標選中輸入框

ordinal :元素id

browser.execute_script("document.getElementById(\‘" + ordinal + "\‘).focus();" )

ele:元素對象

browser.execute_script("arguments[0].focus();", ele)

應用場景:鼠標位於輸入框之後的一些事件。

代替:可用selenium中自帶的鼠標移動(ActionChains)操作進行代替

2.光標從這個輸入框中移出

ordinal :元素id
browser.execute_script("document.getElementById(\‘" + ordinal + "\‘).blur();")

ele:元素對象
browser.execute_script("arguments[0].blur();", ele)

應用場景:當光標不在輸入框是,進行一些判斷。

代替:可用selenium中自帶的鼠標移動(ActionChains)操作進行代替

缺點:當你用js進行輸入之後,在使用js移出指令時。輸入框中事件的判斷不會觸發。。

搭配方式:

1.通過ele的輸入+js移出指令。

例如:

ele = browser.find_element_by_id(id)

ele.click()

ele.clear()
ele.send_keys(parameter)

browser.execute_script("arguments[0].blur();", ele)

2.通過js指令執行光標選中+js輸入+js移除

ordinal:元素id
parameter:需要輸入的元素

# 光標選中id為ordinal的輸入框
browser.execute_script("document.getElementById(\‘" + ordinal + "\‘).focus();" )

# 在元素id為ordinal的輸入框中輸入parameter值
 browser.execute_script("document.getElementById(\‘" + ordinal + "\‘).value=\‘" + parameter + "\‘;")

#  光標從id為ordinal的輸入框中移出
browser.execute_script("document.getElementById(\‘" + ordinal + "\‘).blur();")

頁面滑動:

1.界面滑動到頂部

python:

driver.execute_script("window.scrollTo(0,0)")

java:

((JavascriptExecutor) driver).executeScript("window.scrollTo(0,0)");

2.界面滑動到底部

python:

# 界面移動底部

driver.execute_script("window.scrollTo(0,document.body.scrollHeight)")

java:

//界面移動底部

((JavascriptExecutor) driver).executeScript("window.scrollTo(0, document.body.scrollHeight)");

3.界面滑動到指定位置

python:

# 界面往下移動700像素
driver.execute_script("window.scrollTo(0,700)")

java:

//界面往下移動700像素

((JavascriptExecutor) driver).executeScript("window.scrollBy(0, 700)");

4.界面滑動到指定元素位置(如果使用這個命令,那麽元素位於屏幕中間。。----如有錯誤,請留言。。

python:

# 移動到元素element對象的“頂端”與當前窗口的“頂部”對齊
   
driver.executeScript("arguments[0].scrollIntoView();", element)

java:

//移動到元素element對象的指定的位置

((JavascriptExecutor) driver).executeScript("arguments[0].scrollIntoViewIfNeeded(true);",element);

註:後續更新,不懂的可以留言。請勿噴。!!!~~~~

在selenium中一些相對常用的JavaScript事件