Selenium3+python3自动化(二十)--查看selenium API
前言
前面都是通过官网或他人博客学些selenium,介绍的一些selenium api使用方法,那么selenium的api到底有多少呢?本篇介绍如何查看完整的selenium api
pydoc是Python自带的模块,主要用于python模块中自动生成文档,这些文档可以基于文本呈现的、也可以生成WEB页面的,还可以在服务器上以浏览器的方式呈现!
一、pydoc
1.到底什么是pydoc? ,这个是准确的解释:Documentation generator and online help system.pydoc是Python自带的模块,主要用于从python模块中自动生成文档,这些文档可以基于文本呈现的、也可以生成web页面的,还可以在服务器上以浏览器的方式呈现!简而言之,就是帮你从代码和注释自动生成文档的工具。
2.举个栗子,我需要查看python里面open函数的功能和语法,打开cmd,输入:python -m pydoc open
3.-m参数:python以脚本方法运行模块

那么问题来了,这个是已经知道有这个函数,去查看它的功能,selenium里面不知道到底有多少个函数或方法,那如何查看呢?
二、启动server
1.打开cmd命令行,输入:python -m pydoc -p 6666
2.-p参数:这个表示在本机上启动服务
3.6666参数:这个是服务端口号,随意设置

打开后,界面会出现一个地址:http://localhost:7777/,输入b,在浏览器中直接打开
三、浏览器查看文档
1.发现浏览器自动打开:http://localhost:7777/
2.Built-in Moudles:这个是python自带的模块

四、webdriver API
1.找到这个路径:python37\lib\site-packages,点开selenium
2.打开selenium>webdriver>chrome>webdriver,最终路径:http://localhost:7777/selenium.webdriver.chrome.webdriver.html
3.最终看到的这些就是selenium的webdriver API帮助文档啦


|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
|
add_cookie(self, cookie_dict)Adds a cookie to your current session. :Args: - cookie_dict: A dictionary object, with required keys - "name" and "value"; optional keys - "path", "domain", "secure", "expiry" Usage: driver.add_cookie({'name' : 'foo', 'value' : 'bar'}) driver.add_cookie({'name' : 'foo', 'value' : 'bar', 'path' : '/'}) driver.add_cookie({'name' : 'foo', 'value' : 'bar', 'path' : '/', 'secure':True})back(self)Goes one step backward in the browser history. :Usage: driver.back()close(self)Closes the current window. :Usage: driver.close()create_web_element(self, element_id)Creates a web element with the specified `element_id`.delete_all_cookies(self)Delete all cookies in the scope of the session. :Usage: driver.delete_all_cookies()delete_cookie(self, name)Deletes a single cookie with the given name. :Usage: driver.delete_cookie('my_cookie')execute(self, driver_command, params=None)Sends a command to be executed by a command.CommandExecutor. :Args: - driver_command: The name of the command to execute as a string. - params: A dictionary of named parameters to send with the command. :Returns: The command's JSON response loaded into a dictionary object.execute_async_script(self, script, *args)Asynchronously Executes JavaScript in the current window/frame. :Args: - script: The JavaScript to execute. - \*args: Any applicable arguments for your JavaScript. :Usage: script = "var callback = arguments[arguments.length - 1]; " "window.setTimeout(function(){ callback('timeout') }, 3000);" driver.execute_async_script(script)execute_script(self, script, *args)Synchronously Executes JavaScript in the current window/frame. :Args: - script: The JavaScript to execute. - \*args: Any applicable arguments for your JavaScript. :Usage: driver.execute_script('return document.title;')file_detector_context(self, file_detector_class, *args, **kwargs)Overrides the current file detector (if necessary) in limited context.Ensures the original file detector is set afterwards. Example: with webdriver.file_detector_context(UselessFileDetector): someinput.send_keys('/etc/hosts') :Args: - file_detector_class - Class of the desired file detector. If the class is different from the current file_detector, then the class is instantiated with args and kwargs and used as a file detector during the duration of the context manager. - args - Optional arguments that get passed to the file detector class during instantiation. - kwargs - Keyword arguments, passed the same way as args.find_element(self, by='id', value=None)Find an element given a By strategy and locator. Prefer the find_element_by_* methods whenpossible. :Usage: element = driver.find_element(By.ID, 'foo') :rtype: WebElementfind_element_by_class_name(self, name)Finds an element by class name. :Args: - name: The class name of the element to find. :Returns: - WebElement - the element if it was found :Raises: - NoSuchElementException - if the element wasn't found :Usage: element = driver.find_element_by_class_name('foo')find_element_by_css_selector(self, css_selector)Finds an element by css selector. :Args: - css_selector - CSS selector string, ex: 'a.nav#home' :Returns: - WebElement - the element if it was found :Raises: - NoSuchElementException - if the element wasn't found :Usage: element = driver.find_element_by_css_selector('#foo')find_element_by_id(self, id_)Finds an element by id. :Args: - id\_ - The id of the element to be found. :Returns: - WebElement - the element if it was found :Raises: - NoSuchElementException - if the element wasn't found :Usage: element = driver.find_element_by_id('foo')find_element_by_link_text(self, link_text)Finds an element by link text. :Args: - link_text: The text of the element to be found. :Returns: - WebElement - the element if it was found :Raises: - NoSuchElementException - if the element wasn't found :Usage: element = driver.find_element_by_link_text('Sign In')find_element_by_name(self, name)Finds an element by name. :Args: - name: The name of the element to find. :Returns: - WebElement - the element if it was found :Raises: - NoSuchElementException - if the element wasn't found :Usage: element = driver.find_element_by_name('foo')find_element_by_partial_link_text(self, link_text)Finds an element by a partial match of its link text. :Args: - link_text: The text of the element to partially match on. :Returns: - WebElement - the element if it was found :Raises: - NoSuchElementException - if the element wasn't found :Usage: element = driver.find_element_by_partial_link_text('Sign')find_element_by_tag_name(self, name)Finds an element by tag name. :Args: - name - name of html tag (eg: h1, a, span) :Returns: - WebElement - the element if it was found :Raises: - NoSuchElementException - if the element wasn't found :Usage: element = driver.find_element_by_tag_name('h1')find_element_by_xpath(self, xpath)Finds an element by xpath. :Args: - xpath - The xpath locator of the element to find. :Returns: - WebElement - the element if it was found :Raises: - NoSuchElementException - if the element wasn't found :Usage: element = driver.find_element_by_xpath('//div/td[1]')find_elements(self, by='id', value=None)Find elements given a By strategy and locator. Prefer the find_elements_by_* methods whenpossible. :Usage: elements = driver.find_elements(By.CLASS_NAME, 'foo') :rtype: list of WebElementfind_elements_by_class_name(self, name)Finds elements by class name. :Args: - name: The class name of the elements to find. :Returns: - list of WebElement - a list with elements if any was found. An empty list if not :Usage: elements = driver.find_elements_by_class_name('foo')find_elements_by_css_selector(self, css_selector)Finds elements by css selector. :Args: - css_selector - CSS selector string, ex: 'a.nav#home' :Returns: - list of WebElement - a list with elements if any was found. An empty list if not :Usage: elements = driver.find_elements_by_css_selector('.foo')find_elements_by_id(self, id_)Finds multiple elements by id. :Args: - id\_ - The id of the elements to be found. :Returns: - list of WebElement - a list with elements if any was found. An empty list if not :Usage: elements = driver.find_elements_by_id('foo')find_elements_by_link_text(self, text)Finds elements by link text. :Args: - link_text: The text of the elements to be found. :Returns: - list of webelement - a list with elements if any was found. an empty list if not :Usage: elements = driver.find_elements_by_link_text('Sign In')find_elements_by_name(self, name)Finds elements by name. :Args: - name: The name of the elements to find. :Returns: - list of webelement - a list with elements if any was found. an empty list if not :Usage: elements = driver.find_elements_by_name('foo')find_elements_by_partial_link_text(self, link_text)Finds elements by a partial match of their link text. :Args: - link_text: The text of the element to partial match on. :Returns: - list of webelement - a list with elements if any was found. an empty list if not :Usage: elements = driver.find_elements_by_partial_link_text('Sign')find_elements_by_tag_name(self, name)Finds elements by tag name. :Args: - name - name of html tag (eg: h1, a, span) :Returns: - list of WebElement - a list with elements if any was found. An empty list if not :Usage: elements = driver.find_elements_by_tag_name('h1')find_elements_by_xpath(self, xpath)Finds multiple elements by xpath. :Args: - xpath - The xpath locator of the elements to be found. :Returns: - list of WebElement - a list with elements if any was found. An empty list if not :Usage: elements = driver.find_elements_by_xpath("//div[contains(@class, 'foo')]")forward(self)Goes one step forward in the browser history. :Usage: driver.forward()fullscreen_window(self)Invokes the window manager-specific 'full screen' operationget(self, url)Loads a web page in the current browser session.get_cookie(self, name)Get a single cookie by name. Returns the cookie if found, None if not. :Usage: driver.get_cookie('my_cookie')get_cookies(self)Returns a set of dictionaries, corresponding to cookies visible in the current session. :Usage: driver.get_cookies()get_log(self, log_type)Gets the log for a given log type :Args: - log_type: type of log that which will be returned :Usage: driver.get_log('browser') driver.get_log('driver') driver.get_log('client') driver.get_log('server')get_screenshot_as_base64(self)Gets the screenshot of the current window as a base64 encoded string which is useful in embedded images in HTML. :Usage: driver.get_screenshot_as_base64()get_screenshot_as_file(self, filename)Saves a screenshot of the current window to a PNG image file. Returns False if there is any IOError, else returns True. Use full paths in your filename. :Args: - filename: The full path you wish to save your screenshot to. This should end with a `.png` extension. :Usage: driver.get_screenshot_as_file('/Screenshots/foo.png')get_screenshot_as_png(self)Gets the screenshot of the current window as a binary data. :Usage: driver.get_screenshot_as_png()get_window_position(self, windowHandle='current')Gets the x,y position of the current window. :Usage: driver.get_window_position()get_window_rect(self)Gets the x, y coordinates of the window as well as height and width ofthe current window. :Usage: driver.get_window_rect()get_window_size(self, windowHandle='current')Gets the width and height of the current window. :Usage: driver.get_window_size()implicitly_wait(self, time_to_wait)Sets a sticky timeout to implicitly wait for an element to be found, or a command to complete. This method only needs to be called one time per session. To set the timeout for calls to execute_async_script, see set_script_timeout. :Args: - time_to_wait: Amount of time to wait (in seconds) :Usage: driver.implicitly_wait(30)maximize_window(self)Maximizes the current window that webdriver is usingminimize_window(self)Invokes the window manager-specific 'minimize' operationrefresh(self)Refreshes the current page. :Usage: driver.refresh()save_screenshot(self, filename)Saves a screenshot of the current window to a PNG image file. Returns False if there is any IOError, else returns True. Use full paths in your filename. :Args: - filename: The full path you wish to save your screenshot to. This should end with a `.png` extension. :Usage: driver.save_screenshot('/Screenshots/foo.png')set_page_load_timeout(self, time_to_wait)Set the amount of time to wait for a page load to complete before throwing an error. :Args: - time_to_wait: The amount of time to wait :Usage: driver.set_page_load_timeout(30)set_script_timeout(self, time_to_wait)Set the amount of time that the script should wait during an execute_async_script call before throwing an error. :Args: - time_to_wait: The amount of time to wait (in seconds) :Usage: driver.set_script_timeout(30)set_window_position(self, x, y, windowHandle='current')Sets the x,y position of the current window. (window.moveTo) :Args: - x: the x-coordinate in pixels to set the window position - y: the y-coordinate in pixels to set the window position :Usage: driver.set_window_position(0,0)set_window_rect(self, x=None, y=None, width=None, height=None)Sets the x, y coordinates of the window as well as height and width ofthe current window. :Usage: driver.set_window_rect(x=10, y=10) driver.set_window_rect(width=100, height=200) driver.set_window_rect(x=10, y=10, width=100, height=200)set_window_size(self, width, height, windowHandle='current')Sets the width and height of the current window. (window.resizeTo) :Args: - width: the width in pixels to set the window to - height: the height in pixels to set the window to :Usage: driver.set_window_size(800,600)start_client(self)Called before starting a new session. This method may be overriddento define custom startup behavior.start_session(self, capabilities, browser_profile=None)Creates a new session with the desired capabilities. :Args: - browser_name - The name of the browser to request. - version - Which browser version to request. - platform - Which platform to request the browser on. - javascript_enabled - Whether the new session should support JavaScript. - browser_profile - A selenium.webdriver.firefox.firefox_profile.FirefoxProfile object. Only used if Firefox is requested.stop_client(self)Called after executing a quit command. This method may be overriddento define custom shutdown behavior.switch_to_active_element(self)Deprecated use driver.switch_to.active_elementswitch_to_alert(self)Deprecated use driver.switch_to.alertswitch_to_default_content(self)Deprecated use driver.switch_to.default_contentswitch_to_frame(self, frame_reference)Deprecated use driver.switch_to.frameswitch_to_window(self, window_name)Deprecated use driver.switch_to.windowData descriptors inherited from selenium.webdriver.remote.webdriver.WebDriver:__dict__dictionary for instance variables (if defined)__weakref__list of weak references to the object (if defined)application_cacheReturns a ApplicationCache Object to interact with the browser app cachecurrent_urlGets the URL of the current page. :Usage: driver.current_urlcurrent_window_handleReturns the handle of the current window. :Usage: driver.current_window_handledesired_capabilitiesreturns the drivers current desired capabilities being usedfile_detectorlog_typesGets a list of the available log types :Usage: driver.log_typesmobilenameReturns the name of the underlying browser for this instance. :Usage: name = driver.nameorientationGets the current orientation of the device :Usage: orientation = driver.orientationpage_sourceGets the source of the current page. :Usage: driver.page_sourceswitch_to:Returns: - SwitchTo: an object containing all options to switch focus into :Usage: element = driver.switch_to.active_element alert = driver.switch_to.alert driver.switch_to.default_content() driver.switch_to.frame('frame_name') driver.switch_to.frame(1) driver.switch_to.frame(driver.find_elements_by_tag_name("iframe")[0]) driver.switch_to.parent_frame() driver.switch_to.window('main')titleReturns the title of the current page. :Usage: title = driver.titlewindow_handlesReturns the handles of all windows within the current session. :Usage: driver.window_handles |
cookie:driver.add_cookie(字典格式)
driver.delete_cookie('cookie名')
driver.delete_all_cookies()
driver.get_cookie(name)
driver.get_cookies()
浏览器相关:
浏览器前进、后退、退出当前窗口:driver.forward()、driver.back()、driver.close()
全屏:driver.fullscreen_window()
driver.get(url)、
创建新的web element:driver.create_web_element(element_id)
位置、大小:
driver.get_window_position()
driver.get_window_rect()
driver.get_window_size()
driver.maximize_window()
driver.minimize_window()
set_window_position(0,0) # x,y
set_window_rect(x=1,y=1,width=100,height=200)
set_window_size(width,height)
等待:driver.implicitly_wait(10)
driver.set_page_load_timeout(20) #设置等待页面加载完成的时间量在抛出错误之前。
driver.set_script_timeout(20) #设置脚本在在引发错误之前执行“异步”脚本调用。
刷新:driver.refresh()
截图:
driver.save_screenshot("D:\\1.png")
driver.get_screenshot_as_base64()
driver.get_screenshot_as_file("D:\\1.png")
driver.get_screenshot_as_png()
执行:driver.execute(字符串格式的执行命令的名称,命名参数字典)
driver.execute_async_script(script,*args)
driver.execute_script(script,*args)
定位:八种定位方式,单数:如,find_element_by_id(id)
复数:如,find_elements_by_id(id)
其它:
driver.get_log('browser') #获取给定日志类型的日志
driver.current_url #获取当前页的URL
driver.title
driver.current_window_handle #返回当前窗口的句柄
driver.name
driver.window_handles #返回当前会话中所有窗口的句柄(浏览器窗口的标签)
driver.orientation
driver.page_source
switch_to #切换到 一个包含所有可切换焦点的选项的对象
driver.switch_to.active_element
driver.switch_to.alert
driver.switch_to.default_content()
driver.switch_to.frame('frame_name')
driver.switch_to.frame(driver.find_elements_by_tag_name("iframe")[0])
driver.switch_to.parent_frame()
driver.switch_to.window('main') #切换句柄,如,切换浏览器标签
转:https://www.cnblogs.com/canglongdao/p/13587969.html
浙公网安备 33010602011771号