脚步:
\n添加了 \xe2\x80\x9cGerman\xe2\x80\x9d 本地化作为第二语言。
\n在“准备提交”下添加了所有本地化文本。
\n添加了所有本地化的屏幕截图
\n苹果手机 6,5"
\niPhone 5.5 英寸
\nipad 12.9" 第三代
\nipad 12.9" 第二代
\n选择“应用程序信息”(在“常规”下)。
\n在“主要语言”下拉列表中选择“德语”并保存。
\n发生了什么:
\n显示错误消息:
\n此页面上有一个或多个错误。
\n可能出现的问题:
\n在我的应用程序上下文中的“媒体管理器”下,在“iMessage 应用程序”和“Apple Watch”部分中,它声称它使用“英语(美国)”屏幕截图的引用。
\n\n但是,该应用程序既不支持“iMesage App”也不支持“Apple Watch”,当我切换到“英语(美国)”本地化时,“iMessage App”和“Apple Watch”下既没有屏幕截图也没有参考资料。
\n\n我的应用程序既不支持“iMessage App”也不支持“Apple Watch”,并且英语本地化似乎不需要这些选项的专用屏幕截图(或对屏幕截图的引用)。
\n这个问题似乎已经在这里得到了解答:
\n\n然而,该解决方案不起作用,因为“使用 XX_LANGUAGE_XX Apple Watch\xe2\x80\x9d 在媒体管理器的上下文中似乎无法检查/选择(不再?)”。
\n我有一个方法可以获取元素的 href 属性hrefAppTheme并检查它是否是 string-array 的值之一appThemes:
describe('...',() => {
it('should ...', () => {
(...)
let defaultAppTheme = '';
onMenuPage.hrefAppTheme.invoke('attr', 'href')
.then(hrefVal => {
if (typeof hrefVal !== 'undefined') {
expect(hrefVal).to.be.oneOf(onMenuPage.appThemes);
defaultAppTheme = hrefVal;
//referencing the variable 'defaultAppTheme' further below...
}
});
Run Code Online (Sandbox Code Playgroud)
可以安全地假设this.hrefAppTheme.invoke('attr', 'href')总是返回用户主题之一(字符串),因为上面的代码工作可靠。
由于事实证明我需要在几个不同的地方使用该逻辑,因此我想将其提取到一个方法中并将其放入页面对象类中。这就是我所拥有的:
export default class MenuPage {
(...)
getUserTheme(): string {
let userTheme = '';
cy.then(() => {
this.hrefAppTheme.invoke('attr', 'href')
.then(resVal => {
if (typeof resVal !== 'undefined') {
userTheme = resVal; …Run Code Online (Sandbox Code Playgroud) app-store ×1
apple-watch ×1
cypress ×1
imessage ×1
invoke ×1
ios ×1
node.js ×1
pageobjects ×1
typescript ×1