Best JavaScript code snippet using appium-android-driver
walls.js
Source:walls.js
1(function ($) {2 $.fn.yogaWall = function (options) {3 var $container = $(this);4 var $media = $container.find('div[data-role=PostMedia]');5 var $addVideoButton = $container.find('button[data-role=AddVideoButton]');6 var $addPhotosButton = $container.find('button[data-role=UploadButton]');7 var $postsEmpty = $('#page-content', window.parent.document).find('[data-role=PostsEmpty]');8 options = $.extend({9 afterPost: function (html) {10 $container.find('[data-role=Posts]').prepend(html);11 },12 afterShare: function () {},13 afterDelete: function ($button) {14 $button.closest('[data-role=Post]').remove();15 if ($media.find('[data-role=Posts]').length > 0) return;16 $postsEmpty.show();17 }18 }, options);19 $container.find('[data-role=PostContainer]').yogaGallery({20 beforeUpload: function () {21 $container.find('[data-role=PostMediaResource]').remove();22 },23 afterUpload: function() {24 disableButtons($addPhotosButton, $addVideoButton);25 }26 });27 var scanMedia = function () {28 if ($media.find('[data-role=PostMediaResource]').length > 0) return;29 var $textarea = $(this);30 var match = /(?:https?:\/\/)?([a-z][a-z0-9-]+(?:\.[a-z][a-z0-9-]+)+[^\s]*)/i.exec($textarea.val());31 if (match) {32 var url = match[0];33 if (!/^https?:\/\//.test(url)) {34 url = 'http://' + url;35 }36 $.ajax({37 type: 'POST',38 url: $container.data('media-preview-url'),39 data: { uri: url },40 success: function (html) {41 if (!html) return;42 $container.find('[data-role=PostMediaResource]').remove();43 var $resource = $(html);44 var $image = $resource.find('[data-role=PostMediaImage]');45 $media.append($resource);46 disableButtons($addPhotosButton, $addVideoButton);47 $.ajax({48 type: 'POST',49 url: $image.data('scan-url'),50 data: { uri: $resource.data('resource-uri') },51 success: function (html) {52 $image.html(html);53 }54 });55 }56 });57 }58 };59 this.on('keyup', 'textarea', _.debounce(scanMedia, 1000));60 this.on('change paste', 'textarea', scanMedia);61 this.on('click', 'button[data-role=PostButton]', function (e) {62 e.preventDefault();63 var $button = $(this);64 var $container = $button.closest('[data-role=PostContainer]');65 var $content = $container.find('[data-role=PostContent]');66 var $postsEmpty = $('#page-content', window.parent.document).find('[data-role=PostsEmpty]');67 var url = $button.attr('data-url');68 var content = $content.val();69 var $resources = $container.find('[data-role=PostMediaResource]');70 var resourceUris = [];71 $resources.each(function () {72 var $resource = $(this);73 var uri = $resource.attr('data-resource-uri');74 resourceUris.push(uri);75 });76 if (content.trim() == "" && resourceUris.length == 0) return;77 if (content.split(/[^\w'-]+/i).length > 300) {78 alert('Please enter 300 words or less.');79 return;80 }81 $.ajax({82 type: 'POST',83 url: url,84 contentType: 'application/json',85 data: JSON.stringify({86 Content: content,87 ResourceUris: resourceUris88 }),89 success: function (response) {90 options['afterPost'](response);91 toLocalDateTime($(".post .localDateTime", ".posts").eq(0));92 $content.val('');93 $resources.remove();94 $postsEmpty.hide();95 enableButtons($addPhotosButton, $addVideoButton);96 }97 });98 });99 this.on('click', 'button[data-role=SharePostButton]', function (e) {100 e.preventDefault();101 var $button = $(this);102 var url = $button.attr('data-url');103 var postId = $button.attr('data-post-id');104 $.ajax({105 type: 'POST',106 url: url,107 data: { PostId: postId },108 success: function (response ) {109 options['afterShare'](response);110 window.alert('Post shared.');111 }112 });113 });114 this.on('click', 'a[data-role=DeletePostButton]', function (e) {115 e.preventDefault();116 if (!window.confirm("Are you sure you want to delete this?"))117 return;118 var $button = $(this);119 var url = $button.attr('data-url');120 var postId = $button.attr('data-post-id');121 $.ajax({122 type: 'POST',123 url: url,124 data: { PostId: postId },125 success: function () {126 options['afterDelete']($button);127 }128 });129 });130 this.on('click', 'button[data-role=AddVideoButton]', function (e) {131 e.preventDefault();132 var $button = $(this);133 openModal($button.data('url'), false);134 });135 this.on('click', 'div[data-role=PostMediaResource] a[data-role=RemoveButton]', function (e) {136 e.preventDefault();137 $(this).closest('[data-role=PostMediaResource]').remove();138 if ($media.find('[data-role=PostMediaResource]').length > 0) return;139 enableButtons($addPhotosButton, $addVideoButton);140 });141 };142 $.fn.yogaWallAddVideoModal = function () {143 var $container = this;144 var $resources = $('#page-content', window.parent.document).find('[data-role=PostMedia]');145 var $addVideoButton = $('#page-content', window.parent.document).find('button[data-role=AddVideoButton]');146 var $addPhotosButton = $('#page-content', window.parent.document).find('button[data-role=UploadButton]');147 $container.find('button[data-role=AddButton]').on('click', function (e) {148 e.preventDefault();149 var $button = $(this);150 $.ajax({151 type: 'POST',152 url: $button.attr('data-url'),153 data: $button.parent().find('input').serialize(),154 success: function (video) {155 $.ajax({156 type: 'POST',157 url: $container.data('media-preview-url'),158 data: { uri: 'urn:yogaclicks:entity:Video:' + video.Id },159 success: function (html) {160 $resources.find('[data-role=PostMediaResource]').remove();161 $resources.append(html);162 disableButtons($addPhotosButton, $addVideoButton);163 closeModal();164 }165 });166 },167 error: function () {168 alert("Please provide a valid YouTube or Vimeo video URL.");169 }170 });171 });172 };173 var disableButtons = function(photosButton, videoButton) {174 photosButton.attr('disabled', 'disabled');175 photosButton.css('opacity', 0.6);176 videoButton.attr('disabled', 'disabled');177 videoButton.css('opacity', 0.6);178 };179 var enableButtons = function (photosButton, videoButton) {180 photosButton.removeAttr('disabled');181 photosButton.css('opacity', 1);182 videoButton.removeAttr('disabled');183 videoButton.css('opacity', 1);184 };...
index.js
Source:index.js
1import React from 'react';2import { connect } from 'umi';3import { Button, Collapse, Divider, PageHeader, Select, Statistic, Upload, message } from 'antd';4import { CloudUploadOutlined, FileAddOutlined } from '@ant-design/icons';5import { delay } from '../../utils/respCheck';6import style from './index.less';7import moment from 'moment';8import UserTable from './userTable';9import MediaTable from './mediaTable';10import RegisteredModal from '../login/registeredModal';11const { Panel } = Collapse;12const { Option } = Select;13class ManagerMedia extends React.Component {14 constructor(props) {15 super(props);16 this.state = {17 modalVisible: false,18 loading: false,19 // æ件ä¸ä¼ Upload20 file: null,21 fileList: [],22 uploadBtnLoading: false,23 // æ¬å°åªä½æ«æ24 scanMediaBtnLoading: false25 }26 }27 // handle28 uploadOnChange = async (data) => {29 await this.setState({30 file: data.file,31 fileList: data.fileList32 });33 };34 uploadFile = async () => {35 await this.setState({uploadBtnLoading: true});36 let formData = new FormData();37 formData.append('file', this.state.file);38 await this.props.dispatch({ type: 'managerModel/uploadFile', payload: formData });39 await this.setState({uploadBtnLoading: false});40 await this.setState({41 file: null,42 fileList: []43 })44 };45 scanMedia = async () => {46 await this.setState({ scanMediaBtnLoading: true });47 message.info("æ£å¨æ«ææ¬å°åªä½æ件ï¼è¯·ç¨å......", 15);48 await this.props.dispatch({ type: 'managerModel/scanMedia' });49 await this.setState({ scanMediaBtnLoading: false });50 };51 // 注å对è¯æ¡52 modalVisible = async () => {53 await this.setState({ modalVisible: true })54 };55 modalHide = async () => {56 await this.setState({ modalVisible: false });57 };58 // life cycle59 initData = async () => {60 await this.setState({ loading: true });61 await this.props.dispatch({type: 'loginModel/getLoginStatus'});62 await this.props.dispatch({ type: 'managerModel/getMusicCount' });63 await this.props.dispatch({ type: 'managerModel/getVideoCount' });64 await this.props.dispatch({ type: 'managerModel/getLastScanMediaTime' });65 await this.setState({ loading: false });66 };67 componentWillMount() {68 this.initData().then()69 }70 render() {71 const renderUpload = () => {72 return <div>73 <div className={style.upload_btn}>74 <Upload name="file"75 accept=".mp3,.mp4"76 multiple={false}77 beforeUpload={() => false}78 fileList={this.state.fileList}79 onChange={this.uploadOnChange}80 >81 {82 this.state.fileList.length === 0 ?83 <Button type={'primary'} icon={<FileAddOutlined />} style={{width: '360px'}}>éæ©æ件</Button> :84 <div onClick={() => null}>85 <span>{`æ¨å·²éæ©${this.state.fileList.length}个æ件ï¼${this.state.file?.name}`}</span>86 </div>87 }88 </Upload>89 {90 this.state.fileList.length > 0 ?91 <Button type={'primary'} icon={<CloudUploadOutlined />} loading={this.state.uploadBtnLoading} style={{width: '80%', marginTop: '30px'}} onClick={this.uploadFile}>ç¡®å®ä¸ä¼ </Button> :92 null93 }94 </div>95 </div>96 };97 return <div>98 <PageHeader title={'åªä½ç®¡ç'}99 subTitle={'æ¯æ管çåä¸ä¼ ï¼å·æ°ï¼æ«æåªä½æ件'}100 />101 <Divider orientation='left' style={{ fontWeight: 'bold' }}>åªä½æ¦è§</Divider>102 <div className={style.row_flex}>103 <Statistic className={style.statistic_board} title="å½ååªä½åºæ»æ°ï¼" value={Number(this.props.musicCount + this.props.videoCount)} suffix={'é¦'}/>104 <Divider type="vertical"/>105 <Statistic className={style.statistic_board} title="ææ²æ°ï¼" value={Number(this.props.musicCount)} suffix={'é¦'}/>106 <Divider type="vertical"/>107 <Statistic className={style.statistic_board} title="è§é¢æ°ï¼" value={Number(this.props.videoCount)} suffix={'个'}/>108 <Divider type="vertical"/>109 <Statistic className={style.statistic_board} title="æè¿ä¸ä¼ ï¼" value={moment(this.props.lastScanMediaTime ?? '0').format('YYYY-MM-DD HH:mm:ss')}/>110 </div>111 <Divider orientation='left' style={{ fontWeight: 'bold' }}>æ«ææ¬å°åªä½ï¼å½ååªä½åºï¼D:/media_src</Divider>112 <div className={style.row_flex}>113 <Button onClick={this.scanMedia} type={'primary'} style={{width: '350px', marginTop: '30px'}} loading={this.state.scanMediaBtnLoading}>å·æ°åªä½å表ï¼éè¦è¾é¿æ¶é´ï¼</Button>114 </div>115 <Divider orientation='left' style={{ fontWeight: 'bold' }}>ä¸ä¼ æ¬å°æ件ï¼ç®¡çåæéï¼</Divider>116 <div className={style.row_flex}>117 {118 this.props.user_role === 'admin' ? renderUpload() : 'æ¨å½åä¸æ¯ç®¡çåï¼æ æ³ä¸ä¼ æ¬å°åªä½å°åªä½åºã'119 }120 </div>121 <Divider orientation='left' style={{ fontWeight: 'bold' }}>ç³»ç»ç¨æ·ç®¡çï¼ç®¡çåæéï¼<Button onClick={this.modalVisible} type={'primary'} style={{marginLeft: '20px'}}>+ æ°å¢ç¨æ·</Button></Divider>122 <div className={style.row_flex}>123 {124 this.props.user_role === 'admin' ? <div className={style.table_wrapper}><UserTable /></div> : 'æ¨å½åä¸æ¯ç®¡çåï¼æ æ³ç®¡çæ¬å°åªä½ã'125 }126 </div>127 <Divider orientation='left' style={{ fontWeight: 'bold' }}>管çæ¬å°æ件ï¼ç®¡çåæéï¼</Divider>128 <div className={style.row_flex}>129 {130 this.props.user_role === 'admin' ? <div className={style.table_wrapper}><MediaTable /></div> : 'æ¨å½åä¸æ¯ç®¡çåï¼æ æ³ç®¡çç³»ç»ç¨æ·ã'131 }132 </div>133 <Divider orientation='left' style={{margin: '20px 0'}} />134 <RegisteredModal visible={this.state.modalVisible}135 hide={this.modalHide}136 dispatch={this.props.dispatch}137 />138 </div>139 }140}141function mapStateToProps(state) {142 const { username, user_role, last_login } = state.loginModel;143 const { musicCount, videoCount, lastScanMediaTime } = state.managerModel;144 return { username, user_role, last_login, musicCount, videoCount, lastScanMediaTime };145}...
popup.js
Source:popup.js
...27function removeElements(selector)28{29 iterateElements(selector, function(node) { node.parentNode.removeChild( node ); })30}31function scanMedia()32{33 background.scanMedia();34 // close the popup35 window.close();36}37function load_media()38{39 // remove all previous results40 removeElements('.media-result');41 42 // show the loading div43 showElements("#scanning");44 hideElements("#nonefound");45 background.loadMedia(function(response) { 46 hideElements("#scanning");47 // add the new entries...
settings.js
Source:settings.js
1// ----- Functions ----- //2// Displays an error message.3function showError (message) {4 var errorMessage = document.getElementById('error-message');5 errorMessage.textContent = message;6}7// Removes the error message.8function clearError () {9 var errorMessage = document.getElementById('error-message');10 errorMessage.textContent = '';11}12// Sends a request to scan the media directories.13function scanMedia () {14 fetch('/scan', {method: 'post'}).then(function (response) {15 if (response.status !== 202) {16 showError('Scan failed.');17 } else {18 clearError();19 }20 });21}22// Sends request to add source via fetch.23function addSource (form) {24 form.preventDefault();25 var data = new FormData(form.target);26 fetch('/add_source', { method: 'put', body: data })27 .then(function (response) {28 if (response.status === 201) {29 location.reload();30 } else {31 response.text().then(function (body) {32 showError(body);33 });34 }35 });36}37// Sets up the event listeners on page buttons.38function setup () {39 var scanButton = document.getElementById('scan-button');40 scanButton.addEventListener('click', scanMedia);41 var sourceDialog = document.getElementById('add-media-dialog');42 dialogPolyfill.registerDialog(sourceDialog);43 var addMediaButton = document.getElementById('add-media-button');44 var closeDialogButton = document.getElementById('close-dialog-button');45 addMediaButton.addEventListener('click', function () {46 sourceDialog.showModal();47 });48 49 closeDialogButton.addEventListener('click', function () {50 sourceDialog.close();51 });52 var sourceForm = document.getElementById('source-form');53 sourceForm.addEventListener('submit', addSource);54}55// ----- DOM Loaded ----- //...
mediaScanner.js
Source:mediaScanner.js
...11 }12 mediaScanner.scanningActive = true;13 alertify.success("Scanning media from your disk, please wait");14 if (typeof scanMedia == 'function') {15 scanMedia();16 }17 return true;18 },19 showSize: function(size) {20 alertify.success(size);21 },22 scannerErrorCallback: function () {23 mediaScanner.scanningActive = false;24 songCollection.needsUpdate = false;25 alertify.error("Unable to scan due to lack of paths. Please check your settings.");26 },27 completeScanning: function() {28 mediaScanner.scanningActive = false;29 songCollection.needsUpdate = true;...
scanMedia.js
Source:scanMedia.js
1function ScanMediaPlugin() {}2 3ScanMediaPlugin.prototype.scanFile = function(string, win, fail) {4 console.log("ScanMediaPlugin: scanFile called");5 cordova.exec(win, fail, "ScanMedia", "mediaScanner", [string]);6};7ScanMediaPlugin.prototype.test = function() {8 console.log("ScanMediaPlugin: Javascript Interface Loaded");9};10ScanMediaPlugin.install = function () {11 console.log("ScanMediaPlugin: Initializing");12 if(!window.plugins){13 window.plugins = {};14 console.log("ScanMediaPlugin: window.plugins initialized");15 }16 window.plugins.scanmedia = new ScanMediaPlugin();17 window.plugins.scanmedia.test();18 19 return window.plugins.scanmedia;20};...
MediaRefresher.js
Source:MediaRefresher.js
1cordova.define("com.metacube.metacampus.mediarefresher.MediaRefresher", function(require, exports, module) {2var mediaRefresh = {3 scanMedia : function(fileUri,successCallback,errorCallback) {4 cordova.exec(5 successCallback,6 errorCallback,7 'MediaRefresher',8 'refresh',9 [fileUri]10 );11 }12}13module.exports = mediaRefresh;...
gamebar.js
Source:gamebar.js
1function scanMedia() {2 $('#media_src').attr("src",'https://www.bilibili.com/video/BV1dW411i7QC?p=2&share_source=copy_web');3 document.querySelector('video').load();//videoéè½½ï¼ä»¥å
读åsrc失败4 $("#mediaModal").modal('show');...
Using AI Code Generation
1var webdriver = require('selenium-webdriver');2var driver = new webdriver.Builder()3 .forBrowser('chrome')4 .build();5driver.findElement(webdriver.By.name('q')).sendKeys('webdriver');6driver.findElement(webdriver.By.name('btnG')).click();7driver.wait(function() {8 return driver.getTitle().then(function(title) {9 return title === 'webdriver - Google Search';10 });11}, 1000);12driver.quit();13driver.scanMedia("/sdcard/DCIM/Camera", "jpg");14driver.quit();15info: [debug] [ADB] The installed 'io.appium.settings' package does not require upgrade (2 >= 2)16info: [debug] [ADB] Running '/Users/xxx/Library/Android/sdk/platform-tools/adb -P 5037 -s emulator-5554 shell 'pgrep --help; echo $?'''
Using AI Code Generation
1var AppiumAndroidDriver = require('appium-android-driver');2var driver = new AppiumAndroidDriver();3driver.scanMedia('/sdcard/test.mp3');4var AppiumAndroidDriver = require('appium-android-driver');5var driver = new AppiumAndroidDriver();6driver.scanMedia('/sdcard/test.mp3');7var AppiumAndroidDriver = require('appium-android-driver');8var driver = new AppiumAndroidDriver();9driver.scanMedia('/sdcard/test.mp3');10var AppiumAndroidDriver = require('appium-android-driver');11var driver = new AppiumAndroidDriver();12driver.scanMedia('/sdcard/test.mp3');13var AppiumAndroidDriver = require('appium-android-driver');14var driver = new AppiumAndroidDriver();15driver.scanMedia('/sdcard/test.mp3');16var AppiumAndroidDriver = require('appium-android-driver');17var driver = new AppiumAndroidDriver();18driver.scanMedia('/sdcard/test.mp3');19var AppiumAndroidDriver = require('appium-android-driver');20var driver = new AppiumAndroidDriver();21driver.scanMedia('/sdcard/test.mp3');22var AppiumAndroidDriver = require('appium-android-driver');23var driver = new AppiumAndroidDriver();24driver.scanMedia('/sdcard/test.mp3');25var AppiumAndroidDriver = require('appium-android-driver');26var driver = new AppiumAndroidDriver();27driver.scanMedia('/sdcard/test.mp3');28var AppiumAndroidDriver = require('appium-android-driver');29var driver = new AppiumAndroidDriver();30driver.scanMedia('/sdcard/test.mp3');31var AppiumAndroidDriver = require('appium-android-driver');32var driver = new AppiumAndroidDriver();33driver.scanMedia('/sdcard/test.mp3');
Using AI Code Generation
1var wd = require('wd'),2 path = require('path'),3 assert = require('assert'),4 _ = require('underscore');5var appPath = path.resolve(__dirname, 'app', 'ApiDemos-debug.apk');6var desiredCaps = {7};8var driver = wd.promiseChainRemote("localhost", 4723);9 .init(desiredCaps)10 .sleep(5000)11 .scanMedia()12 .then(function() {13 console.log('Media Scan Completed');14 })15 .quit();
Using AI Code Generation
1var androidDriver = require("appium-android-driver");2var driver = new androidDriver.AndroidDriver();3driver.scanMedia("/path/to/your/file");4var androidDriver = require("appium-android-driver");5var driver = new androidDriver.AndroidDriver();6driver.scanMedia("/path/to/your/file");7var androidDriver = require("appium-android-driver");8var driver = new androidDriver.AndroidDriver();9driver.scanMedia("/path/to/your/file");10var androidDriver = require("appium-android-driver");11var driver = new androidDriver.AndroidDriver();12driver.scanMedia("/path/to/your/file");13var androidDriver = require("appium-android-driver");14var driver = new androidDriver.AndroidDriver();15driver.scanMedia("/path/to/your/file");16var androidDriver = require("appium-android-driver");17var driver = new androidDriver.AndroidDriver();18driver.scanMedia("/path/to/your/file");19var androidDriver = require("appium-android-driver");20var driver = new androidDriver.AndroidDriver();21driver.scanMedia("/path/to/your/file");22var androidDriver = require("appium-android-driver");23var driver = new androidDriver.AndroidDriver();24driver.scanMedia("/path/to/your/file");25var androidDriver = require("appium-android-driver");26var driver = new androidDriver.AndroidDriver();27driver.scanMedia("/path/to/your/file");28var androidDriver = require("appium-android-driver");29var driver = new androidDriver.AndroidDriver();30driver.scanMedia("/path/to/your/file");31var androidDriver = require("appium
Learn to execute automation testing from scratch with LambdaTest Learning Hub. Right from setting up the prerequisites to run your first automation test, to following best practices and diving deeper into advanced test scenarios. LambdaTest Learning Hubs compile a list of step-by-step guides to help you be proficient with different test automation frameworks i.e. Selenium, Cypress, TestNG etc.
You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.
Get 100 minutes of automation test minutes FREE!!