{"id":560,"date":"2013-05-19T18:56:14","date_gmt":"2013-05-19T10:56:14","guid":{"rendered":"http:\/\/www.yeetrack.com\/?p=560"},"modified":"2013-09-27T22:36:39","modified_gmt":"2013-09-27T14:36:39","slug":"selenum-webdriver-%e6%89%a7%e8%a1%8cjavascript%e4%bb%a3%e7%a0%81","status":"publish","type":"post","link":"https:\/\/www.yeetrack.com\/?p=560","title":{"rendered":"selenium webdriver \u6267\u884cjavascript\u4ee3\u7801"},"content":{"rendered":"<p>\u5728\u7528selenium webdriver \u7f16\u5199web\u9875\u9762\u7684\u81ea\u52a8\u5316\u6d4b\u8bd5\u4ee3\u7801\u65f6\uff0c\u53ef\u80fd\u9700\u8981\u6267\u884c\u4e00\u4e9bjavascript\u4ee3\u7801\uff0cselenium\u672c\u8eab\u5c31\u652f\u6301\u6267\u884cjs\uff0c\u6211\u4eec\u5728\u4ee3\u7801\u4e2d<code>import org.openqa.selenium.JavascriptExecutor;<\/code>\u5c31\u53ef\u4ee5\u4f7f\u7528<code>executeScript<\/code>\u3001<code>executeAsyncScript<\/code>\u8fd9\u4e24\u4e2a\u65b9\u6cd5\u4e86\uff0c\u5176\u4e2d<code>executeScript<\/code>\u662f\u540c\u6b65\u65b9\u6cd5\uff0c\u7528\u5b83\u6267\u884cjs\u4ee3\u7801\u4f1a\u963b\u585e\u4e3b\u7ebf\u7a0b\u6267\u884c\uff0c\u76f4\u5230js\u4ee3\u7801\u6267\u884c\u5b8c\u6bd5\uff1b<code>executeAsyncScript<\/code>\u65b9\u6cd5\u662f\u5f02\u6b65\u65b9\u6cd5\uff0c\u5b83\u4e0d\u4f1a\u963b\u585e\u4e3b\u7ebf\u7a0b\u6267\u884c\u3002<br \/>\n<strong>executeScript<\/strong>\u65b9\u6cd5\u5982\u679c\u6709\u8fd4\u56de\u503c\uff0c\u6709\u4ee5\u4e0b\u51e0\u79cd\u60c5\u51b5\uff1a<!--more--><\/p>\n<ul>\n<li>\u5982\u679c\u8fd4\u56de\u4e00\u4e2a\u9875\u9762\u5143\u7d20\uff08document element), \u8fd9\u4e2a\u65b9\u6cd5\u5c31\u4f1a\u8fd4\u56de\u4e00\u4e2aWebElement<\/li>\n<li>\u5982\u679c\u8fd4\u56de\u6d6e\u70b9\u6570\u5b57\uff0c\u8fd9\u4e2a\u65b9\u6cd5\u5c31\u8fd4\u56de\u4e00\u4e2adouble\u7c7b\u578b\u7684\u6570\u5b57<\/li>\n<li>\u8fd4\u56de\u975e\u6d6e\u70b9\u6570\u5b57\uff0c\u65b9\u6cd5\u8fd4\u56deLong\u7c7b\u578b\u6570\u5b57<\/li>\n<li>\u8fd4\u56deboolean\u7c7b\u578b\uff0c\u65b9\u6cd5\u8fd4\u56deBoolean\u7c7b\u578b<\/li>\n<li>\u5982\u679c\u8fd4\u56de\u4e00\u4e2a\u6570\u7ec4\uff0c\u65b9\u6cd5\u4f1a\u8fd4\u56de\u4e00\u4e2aList&lt;Object&gt;<\/li>\n<li>\u5176\u4ed6\u60c5\u51b5\uff0c\u8fd4\u56de\u4e00\u4e2a\u5b57\u7b26\u4e32<\/li>\n<li>\u5982\u679c\u6ca1\u6709\u8fd4\u56de\u503c\uff0c\u6b64\u65b9\u6cd5\u5c31\u4f1a\u8fd4\u56denull<\/li>\n<\/ul>\n<p><strong>executeScript<\/strong>\u4f8b\u5b50\uff1a<\/p>\n<pre><code>package com.yeetrack.selenium;\n\nimport java.util.concurrent.TimeUnit;\n\nimport org.openqa.selenium.By;\nimport org.openqa.selenium.JavascriptExecutor;\nimport org.openqa.selenium.WebDriver;\n\n\/**\n* @author youthflies yeetrack.com\n* Mytest.java  2013-5-19 \n* \u6d4b\u8bd5\u6240\u7528\u4e34\u65f6\u6587\u4ef6\n*\/\npublic class Mytest\n{\n    public static void main(String[] args) throws InterruptedException\n    {\n        \/\/\u53ef\u80fd\u9700\u8981\u8bbe\u7f6efirefox\u7684\u8def\u5f84\n        WebDriver driver = new FirefoxDriver();\n        try\n        {\n            driver.get(\"http:\/\/www.baidu.com\");\n            \/\/\u5229\u7528webdriver\u952e\u5165\u641c\u7d22\u5173\u952e\u5b57\n            \/\/driver.findElement(By.id(\"kw\")).sendKeys(\"yeetrack\");\n            \/\/\u5229\u7528js\u4ee3\u7801\u952e\u5165\u641c\u7d22\u5173\u952e\u5b57\n            ((JavascriptExecutor)driver).executeScript(\"document.getElementById(\\\"kw\\\").value=\\\"yeetrack\\\"\");\n            \/\/\u5229\u7528js\u4ee3\u7801\u53d6\u51fa\u5173\u952e\u5b57\n            String keyword = (String) ((JavascriptExecutor)driver).executeScript(\"var input = document.getElementById(\\\"kw\\\").value;return input\");\n            System.out.println(keyword);\n            driver.findElement(By.id(\"su\")).click();\n            TimeUnit.SECONDS.sleep(5);\n         }\n        catch (Exception e)\n        {\n            e.printStackTrace();\n        }\n        finally\n        {\n            driver.quit();\n        }\n }\n\n}  \n<\/code><\/pre>\n<p><code>executeAsyncScript<\/code>\u662f\u5f02\u6b65\u5730\u6267\u884cjs\uff0c\u53ef\u4ee5\u7528\u6765\u53d1\u9001ajax\u8bf7\u6c42\uff0c\u8be6\u7ec6\u53c2\u89c1\u5b98\u65b9\u6587\u6863: <a href=\"http:\/\/selenium.googlecode.com\/svn\/trunk\/docs\/api\/java\/org\/openqa\/selenium\/JavascriptExecutor.html\">http:\/\/selenium.googlecode.com\/svn\/trunk\/docs\/api\/java\/org\/openqa\/selenium\/JavascriptExecutor.html<\/a> <a href=\"http:\/\/selenium.googlecode.com\/svn\/trunk\/docs\/api\/java\/org\/openqa\/selenium\/remote\/RemoteWebDriver.html\">http:\/\/selenium.googlecode.com\/svn\/trunk\/docs\/api\/java\/org\/openqa\/selenium\/remote\/RemoteWebDriver.html<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u5728\u7528selenium webdriver \u7f16\u5199web\u9875\u9762\u7684\u81ea\u52a8\u5316\u6d4b\u8bd5\u4ee3\u7801\u65f6\uff0c\u53ef\u80fd\u9700\u8981\u6267\u884c\u4e00\u4e9bjavascript\u4ee3\u7801\uff0cselenium\u672c\u8eab\u5c31\u652f\u6301\u6267\u884cjs\uff0c\u6211\u4eec\u5728\u4ee3\u7801\u4e2dimport org.openqa&#46;&#46;&#46;<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"pgc_sgb_lightbox_settings":"","footnotes":""},"categories":[33],"tags":[8,9,7,41],"class_list":["post-560","post","type-post","status-publish","format-standard","hentry","category-coding","tag-java","tag-javascript","tag-7","tag-41"],"views":10694,"_links":{"self":[{"href":"https:\/\/www.yeetrack.com\/index.php?rest_route=\/wp\/v2\/posts\/560","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.yeetrack.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.yeetrack.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.yeetrack.com\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.yeetrack.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=560"}],"version-history":[{"count":4,"href":"https:\/\/www.yeetrack.com\/index.php?rest_route=\/wp\/v2\/posts\/560\/revisions"}],"predecessor-version":[{"id":736,"href":"https:\/\/www.yeetrack.com\/index.php?rest_route=\/wp\/v2\/posts\/560\/revisions\/736"}],"wp:attachment":[{"href":"https:\/\/www.yeetrack.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=560"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.yeetrack.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=560"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.yeetrack.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=560"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}