{ "info": { "author": "\u7f57\u79d1\u5cf0", "author_email": "lkf20031988@163.com", "bugtrack_url": null, "classifiers": [], "description": "# rtsf-web\n \u57fa\u4e8ertsf\u6d4b\u8bd5\u6846\u67b6\u548cselenium\u7a0b\u5e8f\u6846\u67b6\uff0c\u5173\u952e\u5b57\u9a71\u52a8Web UI\u5c42\u9762\uff0c\u8fdb\u884c\u81ea\u52a8\u5316\u7684\u529f\u80fd\u6d4b\u8bd5\n\n## \u73af\u5883\u51c6\u5907\n\n### \u5b89\u88c5\u6d4f\u89c8\u5668\u9a71\u52a8\u548c\u4e0b\u8f7dselenium-server.jar\n1. \u5b89\u88c5\u6d4f\u89c8\u5668\n2. \u4e0b\u8f7d\u6d4f\u89c8\u5668\u5b98\u65b9\u9a71\u52a8\n3. \u8bbe\u7f6e\u73af\u5883\u53d8\u91cf\uff0c\u786e\u4fdd\u9a71\u52a8\u53ef\u88ab\u8c03\u7528\n4. \u4e0b\u8f7d selenium-server\n\n\u7ecf\u8fc7\u591a\u5e74\u7684\u53d1\u5c55WebDriver\u5df2\u7ecf\u6210\u4e3a\u4e86\u4e8b\u5b9e\u4e0a\u7684\u6807\u51c6\uff0c\u73b0\u5728\u6bcf\u79cd\u6d4f\u89c8\u5668\u90fd\u6709\u72ec\u7acb\u7684\u5b98\u65b9\u9a71\u52a8\u6587\u4ef6\u4e86\n\nBrowser | Component\n--------|----------\nChrome |[chromedriver(.exe)](http://chromedriver.storage.googleapis.com/index.html)\nInternet Explorer |[IEDriverServer.exe](http://selenium-release.storage.googleapis.com/index.html)\nEdge |[MicrosoftWebDriver.msi](http://go.microsoft.com/fwlink/?LinkId=619687)\nFirefox 47+ |[geckodriver(.exe)](https://github.com/mozilla/geckodriver/releases/)\nPhantomJS |[phantomjs(.exe)](http://phantomjs.org/)\nOpera |[operadriver(.exe)](https://github.com/operasoftware/operachromiumdriver/releases)\nSafari |[SafariDriver.safariextz](http://selenium-release.storage.googleapis.com/index.html)\n**selenium-server** |[selenium-server-standalone.jar](http://selenium-release.storage.googleapis.com/index.html)\n\n\n### \u5b89\u88c5rtsf-web\npip install rtsf-web\n\n## \u7f16\u5199\u6d4b\u8bd5\u7528\u4f8b\uff0c\u6a21\u677f\u57fa\u4e8ertsf\n\n> \u53d8\u91cf\u5f15\u7528-> $var \u5173\u952e\u5b57(\u51fd\u6570)\u5f15\u7528-> ${function}\n\n- \u5e38\u91cf\u7684\u5b9a\u4e49\uff0c glob_var \u548c glob_regx\n- \u6a21\u677f\u5e38\u7528\u7684\u5173\u952e\u5b57\uff0c\u53c2\u89c1 [rtsf](https://github.com/RockFeng0/rtsf)\u4ecb\u7ecd\n\n### \u5982\u4f55\u83b7\u53d6\u63a7\u4ef6\nweb\u63a7\u4ef6\u5143\u7d20\u7684\u83b7\u53d6\uff0c\u9075\u5faaselenium\u7684\u89c4\u5219\uff0c\u53ef\u4ee5\u901a\u8fc7\u4e0b\u8ff0\u65b9\u5f0f\u6765\u5b9a\u4f4d\u5143\u7d20\u63a7\u4ef6: id\u3001xpath\u3001link text\u3001partial link text\u3001name\u3001tag name\u3001class name\u3001css selector\n\n\u63a8\u8350\u5e38\u7528\u7684\u5de5\u5177\uff0c\u4e00\u822c\u662f Firefox \u6216\u8005 Chrome \u7b49\u6d4f\u89c8\u5668\u7684\u5f00\u53d1\u8005\u5de5\u5177\u3002\u5982\u4e0b\u56fe\uff0c\u4f7f\u7528chrome\u5f00\u53d1\u6a21\u5f0f\uff0c\u91c7\u7528css\u548cxpath\u4e24\u79cd\u65b9\u5f0f\u5b9a\u4f4d\u8f93\u5165\u6846:\n\n\n\u53e6\u4e00\u4e2a\u5de5\u5177\uff0cselenium IDE\uff0c\u5b98\u65b9\u63a8\u51fa\u7684\u5e26\u6709\u754c\u9762\u7684\u5de5\u5177\n\n\n\u90a3\u4e48\uff0c\u6211\u4e3a\u4ec0\u4e48\u4e0d\u63a8\u8350\u4f7f\u7528\uff0cSelenium IDE? \u4eceselenium1.0\u5f00\u59cb\uff0cselenium ide\u66fe\u7ecf\u7ed9\u6211\u60ca\u8273\uff0c\u53ef\u4ee5\u5f55\u5236\u3001\u5b9a\u4f4d\u3001\u751f\u6210\u811a\u672c\u7b49\uff0c\u5f88\u4f18\u79c0\uff0c\u4f46\u662fselenium2.0\u540e\uff0c\u518d\u4e5f\u6ca1\u6709\u7528\u4e86\u3002\u4e00\u65b9\u9762\u7531\u4e8e\u662f\u57fa\u4e8e\u65e7\u6280\u672f\u5b9e\u73b0\uff0c\u5728\u706b\u72d055\u53ca\u4e4b\u540e\u7684\u65b0\u7248\u672c\u4e0a\u4e0d\u518d\u652f\u6301\u4e86\uff0c\u867d\u7136\u5f88\u597d\u7528\uff0c\u4f46\u662f\u9000\u51fa\u5386\u53f2\u821e\u53f0\u4e86\uff1b \u53e6\u4e00\u65b9\u9762\uff0cfirefox\u548cchrome\u7b49\u6d4f\u89c8\u5668\uff0cweb\u5f00\u53d1\u5de5\u5177\u529f\u80fd\u5f3a\u5927\uff0c\u5b89\u88c5\u7b80\u5355\uff0c\u5bf9\u5143\u7d20\u7684\u5b9a\u4f4d\u548c\u8c03\u8bd5\u63d0\u4f9b\u4e86\u975e\u5e38\u4fbf\u6377\u7684\u65b9\u5f0f\u3002\n\n\n### \u57fa\u672c\u7528\u4f8b\n\n\u57fa\u672c\u7528\u4f8b\uff0c\u662f\u6307\u6ca1\u6709\u5206\u5c42\u7684\u60c5\u51b5\u4e0b\uff0c\u7b80\u5355\u7684\u6d4b\u8bd5\u7528\u4f8b\n\n```\n# test_case.yaml\n- project:\n name: xxx\u7cfb\u7edf\n module: \u767b\u9646\u6a21\u5757-\u529f\u80fd\u6d4b\u8bd5\n\n- case:\n # id desc \u9009\u586b\uff0c\u975e\u7ea6\u5b9a\u5b57\u6bb5\n id: ATP-1 \n desc: \u6d4b\u8bd5\u7528\u4f8b-\u6a21\u677f\u683c\u5f0f\u7684\u8bbe\u8ba1-\u6a21\u677f\uff08\u5168\u5b57\u6bb5\uff09\n\n # name \u5fc5\u586b\uff0c\u9700\u786e\u4fdd\u552f\u4e00\u6027\n name: web_auto_test_demo\n\n # responsible \u9009\u586b\n responsible: rockfeng0\n\n # tester \u9009\u586b\n tester: rockfeng0\n\n # \u5b9a\u4e49\u6b63\u5219\u8868\u8fbe\u5f0f, \u5b9a\u4e49\u7684\u5b57\u7b26\u4e32\u4e0d\u4f1a\u89e3\u6790\n glob_regx:\n rex_title: '\u767e\u5ea6\u4e00\u4e0b\uff0c\u4f60\u5c31\u77e5\u9053'\n\n # \u5b9a\u4e49\u53d8\u91cf\uff0c \u6548\u679c\u540c SetVar(name, value)\n glob_var:\n url1: https://www.baidu.com\n url2: https://www.sina.com\n\n # pre_command \u9009\u586b\n pre_command:\n - ${NavigateTo($url1)}\n # - ${DyStrData(\"title\", re.compile(rex_title))}\n # - ${VerifyTitle($title)}\n\n # steps \u5fc5\u586b\n steps: \n # webdriver \u6d4b\u8bd5web ui \u65f6\u4f7f\u7528\n\n - webdriver:\n action: ${NavigateTo($url2)}\n\n - webdriver:\n action: ${ScrollTo(0, 1000)}\n\n - webdriver:\n action: ${TimeSleep(1)}\n\n - webdriver:\n action: ${Refresh()}\n\n - webdriver:\n action: ${NewTab($url1)}\n\n # \u5728webdriver\u4e2d\uff0c\u8bbe\u7f6e SetControl\u53c2\u6570\uff0c\u5b9a\u4f4d\u5143\u7d20\n - webdriver:\n by: css selector\n value: '#kw'\n index: 0\n timeout: 10\n action: ${SendKeys(123)}\n\n - webdriver:\n action: ${TimeSleep(1)}\n\n # \u76f4\u63a5\u4f7f\u7528 SetControl\u5173\u952e\u5b57\uff0c\u5b9a\u4f4d\u5143\u7d20\n - webdriver:\n action: ${SetControl(by=css selector, value=#kw)}\n\n - webdriver:\n action: ${SendKeys(456)}\n\n - webdriver:\n action: ${SetControl(by=id, value=su)}\n\n - webdriver:\n action: ${DyAttrData(id_su_value, value)}\n\n - webdriver:\n action: ${TimeSleep(1)}\n\n - webdriver:\n action: ${WebClose()} \n\n # post_command \u9009\u586b\n post_command:\n - ${WebQuit()}\n\n```\n\n### \u5206\u5c42\u7528\u4f8b\n\n- \u5206\u5c42\u7528\u4f8b\uff0c\u662f\u6307\u6a21\u5757\u529f\u80fd\u6d4b\u8bd5\u7684\u65f6\u5019\uff0c\u5bf9\u6d4b\u8bd5\u7528\u4f8b\u8fdb\u884c\u5206\u5c42\uff0c\u6700\u5c0f\u7684\u5355\u5143\u4e3aapi\uff0c\u5176\u6b21\u4e3asuite\uff0c\u6700\u540e\u7ec4\u6210\u7528\u4f8b\n- \u5176\u5b58\u653e\u8def\u5f84\u3001\u7f16\u5199\u89c4\u5219\u7b49\uff0c\u8be6\u89c1 [rtsf](https://github.com/RockFeng0/rtsf)\u76f8\u5173\u4ecb\u7ecd\n- \u793a\u4f8b\u53ef\u4ee5\uff0c\u53c2\u89c1[rtsf-http](https://github.com/RockFeng0/rtsf-http)\u76f8\u5173\u4ecb\u7ecd\n\n\n## \u6267\u884c\u6d4b\u8bd5\u7528\u4f8b\n\n1. \u6267\u884c\u524d\uff0c\u6ce8\u610f\u4e0bselenium\u7684\u6267\u884c\u73af\u5883\uff0c rtsf-web\u9650\u5b9a\u4e86\u4e24\u4e2d\u6d4f\u89c8\u5668(chrome\u548cfirefox)\n2. \u8c37\u6b4c\u6d4f\u89c8\u5668\uff0c\u6309\u7167selenium\u7684\u6587\u6863\u4ecb\u7ecd\uff0c\u81ea\u884c\u4e0b\u8f7dchromedriver.exe\u5e76\u914d\u7f6e\n3. \u706b\u72d0\u6d4f\u89c8\u5668\uff0c\u6309\u7167selenium\u7684\u6587\u6863\u4ecb\u7ecd\uff0c\u7248\u672c\u9ad8\u7684\uff0c\u81ea\u884c\u4e0b\u8f7dgeckodriver.exe\u5e76\u914d\u7f6e\n\n> \u6267\u884c\u6d4b\u8bd5\u7528\u4f8b\uff0c\u6709\u4e2a\u547d\u4ee4\uff1a wldriver \u548c wrdriver\n\n### wldriver(web local driver)\u672c\u5730\u6267\u884c\n\u672c\u5730\u6267\u884c\u6d4b\u8bd5\u7528\u4f8b\uff0c\u662f\u6307\u76f4\u63a5\u4f7f\u7528webdriver\u4e2d\u5404\u4e2a\u6d4f\u89c8\u5668\u7684\u9a71\u52a8\uff0c\u6bd4\u5982webdriver.Chrome\u7b49\n\n\n\n\u67e5\u770b\u5e2e\u52a9: wldriver -h\n\u9009\u586b\uff1a\n- \u8bbe\u7f6e\u6d4f\u89c8\u5668(chrome\u3001firefox),\u9ed8\u8ba4\u662f\u8c37\u6b4c\u6d4f\u89c8\u5668: --browser chrome\n- \u8bbe\u7f6e\u6d4f\u89c8\u5668\u4e0b\u8f7d\u6587\u4ef6\u7684\u8def\u5f84\uff0c\u9ed8\u8ba4\u503c\u662f\u6d4f\u89c8\u5668\u7684\u8bbe\u7f6e: --download-path c:\\downloads\n- \u8bbe\u7f6e\u706b\u72d0\u662f\u5426\u4f7f\u7528geckodriver.exe,\u9ed8\u8ba4\u503c\u662fFalse: --marionette False\n\n```\n# run web local case\nwldriver --browser chrome C:\\f_disk\\BaiduNetdiskDownload\\rtsf-web\\tests\\data\\test_case.yaml\n```\n\n\n\n\n### wrdriver(web remote driver)\u8fdc\u7a0b\u6267\u884c\uff0c\u5373selnium grid\u5206\u5e03\u5f0f\u6a21\u5f0f\n\u8be5\u6a21\u5f0f\uff0c\u9075\u5faaselnium grid\u8981\u6c42\uff0c\u9700\u8981\u5f00\u542fhub\u548cnode, rtsf-web\u63d0\u4f9b\u4e24\u4e2a\u547d\u4ee4: wrhub\u548cwrnode\n\n#### \u5f00\u542fhub\n\u7b80\u5355\u7406\u89e3\u4e0bhub, \u73a9\u5c40\u57df\u7f51\u6e38\u620f\uff0c\u6211\u4eec\u5148\u8981\u5efa\u7acb\u4e3b\u673a\uff0c\u90a3\u4e48hub\u53ef\u4ee5\u7406\u89e3\u4e3a\u4e3b\u673a\u7684\u6982\u5ff5\n\n\n\n\u67e5\u770b\u5e2e\u52a9: wrhub -h\n\u9009\u586b\uff1a\n- \u8bbe\u7f6eHUB\u76d1\u542c\u7aef\u53e3,\u9ed8\u8ba4\u662f4444: --port 4444\n- \u6307\u5b9ajava.exe\u8def\u5f84,\u9ed8\u8ba4(\u5df2\u914d\u7f6ejava\u73af\u5883\u53d8\u91cf): --java-path java\n\n```\n# start hub A: 192.168.0.1\nwrhub c:\\selenium-server-standalone-3.14.0.jar --port 4444 --java-path C:\\tmp\\Java\\jdk1.8.0_161\\bin\\java.exe\n```\n\n#### \u5f00\u542fnode\n\u7b80\u5355\u7406\u89e3\u4e0bnode, \u6e38\u620f\u4e3b\u673a\u521b\u5efa\u597d\uff0c\u73a9\u5bb6\u9700\u8981\u52a0\u5165\uff0c\u90a3\u4e48node\u53ef\u4ee5\u7406\u89e3\u4e3a\u52a0\u5165\u4e3b\u673a\u7684\u73a9\u5bb6\n\n\n\n\u67e5\u770b\u5e2e\u52a9: wrnode -h\n\u9009\u586b\uff1a\n- \u8bbe\u7f6eNODE\u76d1\u542c\u7aef\u53e3,\u9ed8\u8ba4\u662f5555: --port 5555\n- \u6267\u884c\u8fde\u63a5hub\u7684ip,\u9ed8\u8ba4\u662flocalhost: --hub-ip 127.0.0.1\n- \u6267\u884c\u8fde\u63a5hub\u7684,\u9ed8\u8ba4\u662f4444: --hub-port 4444\n- \u6307\u5b9ajava.exe\u8def\u5f84,\u9ed8\u8ba4(\u5df2\u914d\u7f6ejava\u73af\u5883\u53d8\u91cf): --java-path java\n\n```\n# start node B: 192.168.0.1 \u8fd9\u4e2anode\u673a\u5668\u7684ip\u8ddfhub A\u4e00\u6837\uff0c\u4e3b\u673a\u4e5f\u53ef\u4ee5\u662f\u73a9\u5bb6\nwrnode c:\\selenium-server-standalone-3.14.0.jar --port 5555 --hub-ip 192.168.0.1 --hub-port 4444 --java-path C:\\tmp\\Java\\jdk1.8.0_161\\bin\\java.exe\n\n# start node C: 192.168.0.2\nwrnode c:\\selenium-server-standalone-3.14.0.jar --port 5555 --hub-ip 192.168.0.1 --hub-port 4444 --java-path C:\\tmp\\Java\\jdk1.8.0_161\\bin\\java.exe\n```\n\n#### \u6267\u884c\u5206\u5e03\u5f0f\u6d4b\u8bd5\n\u8fdc\u7a0b\u6267\u884c\u6d4b\u8bd5\u7528\u4f8b\uff0c\u4e5f\u5c31\u662fselnium grid\u5206\u5e03\u5f0f\u6267\u884c\u6d4b\u8bd5\u7528\u4f8b\uff0c\u662f\u6307\u4f7f\u7528webdriver.Remote\u9a71\u52a8\u5404\u4e2a\u6d4f\u89c8\u5668\u8fdb\u884c\u6d4b\u8bd5\n\n\u7b80\u5355\u7406\u89e3\u4e0b\uff0c\u521b\u5efa\u4e86\u4e3b\u673a\uff0c\u73a9\u5bb6\u4e5f\u4e0a\u7ebf\u4e86\uff0cwrdriver\u5c06\u6307\u5b9a\u7684\u6e38\u620f\u5f02\u6b65\u53d1\u9001\u7ed9\u8fd9\u4e9b\u73a9\u5bb6\n\n\n\n\u67e5\u770b\u5e2e\u52a9: wrdriver -h\n\u9009\u586b\uff1a\n- \u8bbe\u7f6e\u6d4f\u89c8\u5668(chrome\u3001firefox),\u9ed8\u8ba4\u662f\u8c37\u6b4c\u6d4f\u89c8\u5668: --browser chrome\n- \u8bbe\u7f6e\u6d4f\u89c8\u5668\u4e0b\u8f7d\u6587\u4ef6\u7684\u8def\u5f84\uff0c\u9ed8\u8ba4\u503c\u662f\u6d4f\u89c8\u5668\u7684\u8bbe\u7f6e: --download-path c:\\downloads\n- \u8bbe\u7f6e\u706b\u72d0\u662f\u5426\u4f7f\u7528geckodriver.exe,\u9ed8\u8ba4\u503c\u662fFalse: --marionette False\n- \u8bbe\u7f6eHUB IP,\u9ed8\u8ba4\u662flocalhost: --ip 127.0.0.1\n- \u8bbe\u7f6eHUB PORT,\u9ed8\u8ba4\u662f4444: --port 4444\n\n```\n# run web remote case. \u7b80\u5355\u7406\u89e3\uff0c \u5df2\u8fde\u63a5\u4e0a\u4e3b\u673a\u7684\u73a9\u5bb6\uff0c\u4f1a\u63a5\u6536\u5230test_case\u6e38\u620f\nwrdriver C:\\f_disk\\BaiduNetdiskDownload\\rtsf-web\\tests\\data\\test_case.yaml --browser chrome --ip 192.168.0.1 --port 4444\n```\n\n## \u6d4b\u8bd5\u62a5\u544a\u53ca\u65e5\u5fd7\n\n> \u6267\u884c\u7ed3\u675f\u540e\uff0c\u6d4b\u8bd5\u7528\u4f8b\u6240\u5728\u8def\u5f84\uff0c\u5c31\u662freport\u751f\u6210\u7684\u8def\u5f84\n\n\n## \u5c01\u88c5\u7684\u5173\u952e\u5b57(\u5185\u7f6e\u51fd\u6570)\n\n\u5173\u952e\u5b57\u7684\u4f7f\u7528\uff0c\u5728\u524d\u9762\uff0c\u6709\u4ecb\u7ecd\uff0c\u89c4\u5219\u5982\u4e0b\n> \u53d8\u91cf\u5f15\u7528-> $var \u5173\u952e\u5b57(\u51fd\u6570)\u5f15\u7528-> ${function}\n\n### \u6d4f\u89c8\u5668\u76f8\u5173\u64cd\u4f5c\n\nWeb functions | \u53c2\u6570\u4ecb\u7ecd | \u63cf\u8ff0\n--------------|----------|-----\nAlertAccept() | |\u70b9\u51fbalert\u5f39\u7a97\u7684Accept(\u786e\u5b9a)\nAlertDismiss() | |\u70b9\u51fbalert\u5f39\u7a97\u7684Dismiss(\u53d6\u6d88)\nAlertSendKeys(value) | |\u5411alert\u5f39\u7a97\u4e2d\u8f93\u5165\u4fe1\u606f\nBack() | |\u6d4f\u89c8\u5668\u540e\u9000\nForward() | |\u6d4f\u89c8\u5668\u524d\u8fdb\nIESkipCertError() | |IE Skip SSL Cert Error\nJs(script) | |\u6d4f\u89c8\u5668\u6267\u884cjs\u811a\u672c\nMaximize() | |\u6d4f\u89c8\u5668\u6700\u5927\u5316\nNavigateTo(url) | |\u6d4f\u89c8\u5668\u6253\u5f00url\nNewTab() | |\u6d4f\u89c8\u5668\u65b0\u5f00\u6807\u7b7e\u9875\uff0c\u5e76\u5c06\u6240\u6709\u7126\u70b9\u6307\u5411\u8be5\u6807\u7b7e\u9875\nPageSource() | |\u5f53\u524d\u9875\u9762\u6e90\u7801\nRefresh() | |\u6d4f\u89c8\u5668\u5237\u65b0\u5f53\u524d\u9875\u9762\nScreenShoot(pic_path)| |\u622a\u56fe\u5f53\u524d\u9875\u9762\uff0c\u5e76\u4e3apic_path\nScrollTo(x,y) | |\u79fb\u52a8\u6eda\u52a8\u6761\u81f3(x,y),\u5982\u4e0b\uff0cX-Y-top : ScrollTo(\u3001,\"0\"); X-bottom: ScrollTo(\"10000\",\"0\");Y-bottom: ScrollTo(\"0\",\"10000\")\nSetWindowSize(width, height)| |\u8bbe\u7f6e\u6d4f\u89c8\u5668\u7a97\u53e3\u5927\u5c0f\nSwitchToAlert() | |\u5207\u6362\u6d4f\u89c8\u5668\u7126\u70b9\u81f3alert\u5f39\u7a97\nSwitchToDefaultFrame() | |\u5207\u6362\u6d4f\u89c8\u5668\u7126\u70b9\u81f3\u9ed8\u8ba4frame\u6846, \u6bd4\u5982\u6253\u5f00\u7684\u9875\u9762\u6709\u591a\u4e2aiframe\u7684\u60c5\u51b5\nSwitchToDefaultWindow() | |\u5207\u6362\u6d4f\u89c8\u5668\u7126\u70b9\u81f3\u9ed8\u8ba4window\u7a97,\u6bd4\u5982\u591a\u4e2a\u6807\u7b7e\u9875\u7a97\u7684\u60c5\u51b5\nSwitchToNewFrame(frame_name)| |\u5207\u6362\u6d4f\u89c8\u5668\u7126\u70b9\u81f3frame_name\u6846\nSwitchToNewWindow() | |\u5207\u6362\u6d4f\u89c8\u5668\u7126\u70b9\u81f3\u65b0window\u7a97\nWebClose() | |\u5173\u95ed\u6d4f\u89c8\u5668\u5f53\u524d\u7a97\u53e3\nWebQuit() | |Quits the driver and closes every associated window.\n\n### \u5143\u7d20\u5b9a\u4f4d\u76f8\u5173\u64cd\u4f5c\n\n
| WebElement methods | \n\u53c2\u6570\u4ecb\u7ecd | \n\u63cf\u8ff0 | \n
|---|---|---|
| GetControl() | \n\n | \u83b7\u53d6element controls,\u8fd4\u56de\u5b57\u5178\uff0c\u5982\uff1a{\"by\":None,\"value\":None,\"index\":0,\"timeout\":10} | \n
| SetControl(by,value,index,timeout) | \nby: \u6307selenium\u7684\u5bfb\u627e\u5143\u7d20\u7684\u65b9\u5f0f(\"id\", \"xpath\", \"link text\",\"partial link text\",\"name\", \"tag name\", \"class name\", \"css selector\")\uff0c\u9ed8\u8ba4\u4e3aNone | \n\u8bbe\u7f6e\u53d6element controls | \n
| value: \u4e0eby\u914d\u5bf9\u4f7f\u7528\uff0c\u76f8\u5e94by\u7684\u503c | \n||
| index: \u7d22\u5f15\u503c\uff0c\u9ed8\u8ba4\u4e3a0\uff0c\u5373\u7b2c\u4e00\u4e2a\uff0c \u5982\u679cby,value\u7ec4\u5408\u627e\u5230\u5f88\u591a\u5143\u7d20\uff0c\u901a\u8fc7\u7d22\u5f15index\u6307\u5b9a\u4e00\u4e2a | \n||
| timeout: \u8d85\u65f6\u65f6\u95f4\uff0c\u9ed8\u8ba410\uff0c\u537310\u79d2\uff0c\u5982\u679cby,value\u7ec4\u5408\u5bfb\u627e\u5143\u7d20\u8d85\u8fc710\u79d2\uff0c\u8d85\u65f6\u62a5\u9519 | \n