Protractor 量角器点击不';在Chrome移动仿真器中无法工作
我在使用量角器调用的浏览器实例单击锚点时遇到问题。 在处理移动分辨率时,我使用Chrome驱动程序模拟器Protractor 量角器点击不';在Chrome移动仿真器中无法工作,protractor,Protractor,我在使用量角器调用的浏览器实例单击锚点时遇到问题。 在处理移动分辨率时,我使用Chrome驱动程序模拟器 "browserName": "chrome", "chromeOptions": { "mobileEmulation": { "deviceName": 'Apple iPhone 5' } } 锚的示例: <a href="javascript:;" id="FooterContent_NavigationBarCTRL_LoginLink" c
"browserName": "chrome",
"chromeOptions": {
"mobileEmulation": {
"deviceName": 'Apple iPhone 5'
}
}
锚的示例:
<a href="javascript:;" id="FooterContent_NavigationBarCTRL_LoginLink" class="login noroute GA_loginIntention tappable">Login</a>
Package.json-file:
"version": "0.1.0",
"devDependencies": {
"gulp": "^3.9.1",
"gulp-typescript": "2.11.0",
"gulp-debug": "^2.1.2",
"async": "^1.4.2",
"glob": "^6.0.1",
"http-backend-proxy": "^1.4.2",
"jasmine-spec-reporter": "^2.4.0",
"mkdirp": "^0.5.0",
"moment": "^2.10.6",
"nodemailer": "^1.3.2",
"nodemailer-smtp-pool": "^1.0.1",
"nodemailer-smtp-transport": "^1.0.2",
"protractor": "^3.0.0",
"protractor-html-screenshot-reporter": "^0.0.21",
"protractor-jasmine2-screenshot-reporter": "^0.3.0",
"q": "^1.2.0",
"request": "^2.53.0",
"require-new": "^1.1.0",
"require-dir": "^0.3.0",
"underscore": "^1.7.0",
"xoauth2": "^1.0.0"
页面对象shared.ts:
import coreHelper = require("../../page-objects/common/core");
import startpage = require("../../page-objects/startpage/startpage.po");
export class Login {
username: protractor.ElementFinder = element(by.css("#usernameTB"));
password: protractor.ElementFinder = element(by.css("#passwordTB"));
button: protractor.ElementFinder = element(by.css(".loginBTN"));
}
export class Menu {
menuLink: protractor.ElementFinder = element(by.css("a[id*='_MenuLink']"));
loginLink: protractor.ElementFinder = element(by.css("a[id*='_LoginLink']"));
accountMoney: protractor.ElementFinder = element(by.css("#navigationbar > div > span"));
}
export class Submenu {
logout: protractor.ElementFinder = element(by.css("#scrollerInside > section.menu.MobileCore.active.menu_mainmenu > div > header > button.discreet.logout.noroute"));
loginLink: protractor.ElementFinder = element(by.css("_BonusRoute"));
}
export class Shared {
core = new coreHelper.Core();
browser: any;
private po = new startpage.Startpage();
private loginPage = new Login();
private menu = new Menu();
private submenu = new Submenu();
private modal = new Modal();
gameLogin = new GameLogin();
loginLinkClick(): webdriver.promise.Promise<void> {
return (this.menu.loginLink).click();
}
login(): webdriver.promise.Promise<void> {
return this.core.waitForDisplayOf(this.menu.loginLink).then(() => {
this.loginLinkClick()
.then(() => { return this.core.waitForDisplayOf(this.loginPage.username); })
.then(() => {
var username = this.loginPage.username;
var password = this.loginPage.password;
var button = this.loginPage.button;
username.clear();
password.clear();
return username.sendKeys(browser.params.bets10Login)
.then(() => { return password.sendKeys(browser.params.bets10Password); })
.then(() => { return button.click(); })
.then(() => { return this.core.waitForInvisibilityOf(this.loginPage.username); });
});
});
}
}
值得补充的是,它大约在1个月前就开始工作了。
当我与开发人员一起思考所有可能改变的事情时,我们无法回忆起任何可能导致这种行为的事情
我的问题是什么?也许这些答案可以帮助您:为您的testspec.jsEmna添加代码,我用testspec文件更新了我的问题。这些答案对我没有多大帮助,因为它们不能直接回答我的问题。为什么我不能手动单击。我为弄乱代码而道歉。我现在添加了一个更简单的例子,当它不起作用时,我完全可以从头开始,让它变得简单。但它曾经工作过,所以我想知道是否有人也遇到过同样的问题:)
import coreHelper = require("../../page-objects/common/core");
import startpage = require("../../page-objects/startpage/startpage.po");
export class Login {
username: protractor.ElementFinder = element(by.css("#usernameTB"));
password: protractor.ElementFinder = element(by.css("#passwordTB"));
button: protractor.ElementFinder = element(by.css(".loginBTN"));
}
export class Menu {
menuLink: protractor.ElementFinder = element(by.css("a[id*='_MenuLink']"));
loginLink: protractor.ElementFinder = element(by.css("a[id*='_LoginLink']"));
accountMoney: protractor.ElementFinder = element(by.css("#navigationbar > div > span"));
}
export class Submenu {
logout: protractor.ElementFinder = element(by.css("#scrollerInside > section.menu.MobileCore.active.menu_mainmenu > div > header > button.discreet.logout.noroute"));
loginLink: protractor.ElementFinder = element(by.css("_BonusRoute"));
}
export class Shared {
core = new coreHelper.Core();
browser: any;
private po = new startpage.Startpage();
private loginPage = new Login();
private menu = new Menu();
private submenu = new Submenu();
private modal = new Modal();
gameLogin = new GameLogin();
loginLinkClick(): webdriver.promise.Promise<void> {
return (this.menu.loginLink).click();
}
login(): webdriver.promise.Promise<void> {
return this.core.waitForDisplayOf(this.menu.loginLink).then(() => {
this.loginLinkClick()
.then(() => { return this.core.waitForDisplayOf(this.loginPage.username); })
.then(() => {
var username = this.loginPage.username;
var password = this.loginPage.password;
var button = this.loginPage.button;
username.clear();
password.clear();
return username.sendKeys(browser.params.bets10Login)
.then(() => { return password.sendKeys(browser.params.bets10Password); })
.then(() => { return button.click(); })
.then(() => { return this.core.waitForInvisibilityOf(this.loginPage.username); });
});
});
}
}
import sharedHelper = require("../../page-objects/common/shared.po");
import startpageHelper = require("../../page-objects/startpage/startpage.po");
var shared = new sharedHelper.Shared();
var startpage = new startpageHelper.Startpage();
describe("Startpage: ", () => {
beforeEach(() => {
shared.openStartpage();
});
describe("when clicking the Casino button on startpage", () => {
it("then a lobby window opens", () => {
startpage.casinoIconClick().then(() => {
expect(browser.driver.getCurrentUrl()).toMatch(browser.params.casinoUrl);
});
});
});
});
});