2-5-3js执行器

Document对象

 

 


通过Selenium获取元素属性.
注释:Selenium获取元素属性,只能获取属性,不能修改属性值
1 # 通过Selenium获取元素属性
2 #将定位赋值给el
3 el = driver.find_element_by_xpath('//*[@id="ai-topsearch"]')
4 #获取到el的value属性
5 value=el.get_attribute('value')
6 print(value)
通过Document对象来修改元素属性(Document对象不支持xpath定位),步骤:
1 # 通过Document对象来修改元素属性
2 js="document.getElementById('ai-topsearch').setAttribute('value','abd')"
3 # 执行js语句函数:js执行器
4 driver.execute_script(js)

 当定位元素中只能通过xpath定位,想要修改元素的text属性

1 #定位元素,并赋值为el
2 el = driver.find_element_by_xpath('/html/body/div[2]/div/ul[1]/div/div/a[1]')
3 # innerHTML修改文本text的内容为123
4 js = "arguments[0].innerHTML='123'"
5 # 灵活版js执行器操作:通过传递元素参数,来快速实现元素的识别与操作
6 driver.execute_script(js, el)

 


Document整体代码
 1 from time import sleep
 2 from selenium import webdriver
 3 driver=webdriver.Chrome()
 4 #访问商城
 5 driver.implicitly_wait(10)
 6 driver.maximize_window()
 7 driver.get('http://39.98.138.157/shopxo/')
 8 # 通过Selenium获取元素属性
 9 #将定位赋值给el
10 el = driver.find_element_by_xpath('//*[@id="ai-topsearch"]')
11 #获取到el的value属性
12 value=el.get_attribute('value')
13 print(value)
14 # 通过Document对象来修改元素属性
15 js="document.getElementById('ai-topsearch').setAttribute('value','abd')"
16 # 执行js语句函数:js执行器
17 driver.execute_script(js)
18 #定位元素,并赋值为el
19 el = driver.find_element_by_xpath('/html/body/div[2]/div/ul[1]/div/div/a[1]')
20 # innerHTML修改文本text的内容为登录123
21 js = "arguments[0].innerHTML='登录123'"
22 # 灵活版js执行器操作:通过传递元素参数,来快速实现元素的识别与操作
23 driver.execute_script(js, el)

 

滚动条

 

 1 from time import sleep
 2 from selenium import webdriver
 3 driver=webdriver.Chrome()
 4 #访问百度
 5 driver.get('http://www.baidu.com')
 6 driver.implicitly_wait(10)
 7 sleep(2)
 8 #左右滚动
 9 js="window.scrollTo(800,0)"
10 driver.execute_script(js)
11 #上下滚动
12 sleep(2)
13 js="document.scrollingElement.scrollTop=200"
14 driver.execute_script(js)

 居中显示

 1 from time import sleep
 2 from selenium import webdriver
 3 driver=webdriver.Chrome()
 4 #访问百度
 5 driver.get('http://39.98.138.157/shopxo/index.php')
 6 driver.implicitly_wait(10)
 7 #将“如何管理店铺”居中显示,scrollIntoView()
 8 el = driver.find_element_by_xpath('/html/body/footer/div[1]/ul[1]/li[4]/div/p[5]/a')
 9 js = "arguments[0].scrollIntoView()"
10 driver.execute_script(js, el)

网页弹窗

 

 

 1 from time import sleep
 2 
 3 from selenium import webdriver
 4 
 5 driver = webdriver.Chrome()
 6 def web_alert():
 7     #访问alert确认弹窗
 8     driver.get(r'E:\CMVIP03\CMVIP03\class04\alert1.html')
 9     #切换到alert弹出窗本体
10     web_alert=driver.switch_to.alert
11     sleep(2)
12     #点击确认按钮
13     web_alert.accept()
14     driver.quit()
15 def web_confirm():
16     #访问confirm确认取消弹窗
17     driver.get(r'E:\CMVIP03\CMVIP03\class04\confirm1.html')
18     #切换到弹出窗本体
19     web_confirm=driver.switch_to.alert
20     sleep(2)
21     #点击确认按钮
22     # web_alert.accept()
23     #点击取消按钮
24     web_confirm.dismiss()
25     driver.quit()
26 def web_prompt():
27     #访问prompt1.html确认弹窗
28     driver.get(r'E:\CMVIP03\CMVIP03\class04\prompt1.html')
29     #切换到弹窗本体
30     web_prompt=driver.switch_to.alert
31     sleep(2)
32     #获取弹出窗中的文本
33     text=web_prompt.text
34     print(text)
35     #在文本框中输入文本
36     web_prompt.send_keys('995999')
37     #点击确认按钮
38     web_prompt.accept()
39 #确认弹窗
40 web_alert()
41 #确认取消弹窗
42 web_confirm()
43 # #输入框----没有实现,代码存在问题
44 web_prompt()

 

 

alert1.html
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<script>
    alert(1);
</script>
</body>
</html>
confirm1.html
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<script>
   confirm(789);
</script>


</body>
</html>
prompt1.html
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<script>
   prompt('ooooo');
</script>
</body>
</html>

 

posted on 2021-05-16 20:36  射手九个半  阅读(205)  评论(0编辑  收藏  举报

导航