Home php c# sql c c++ javascript python java go android git linux asp.net django .net node.js ios xcode cocoa iphone mysql tomcat mongodb bash objective-c scala visual-studio apache elasticsearch jar eclipse jquery ruby-on-rails ruby rubygems android-studio spring lua sqlite emacs ubuntu perl docker swift amazon-web-services svn html ajax xml java-ee maven intellij-idea rvm macos unix css ipad postgresql css3 json windows-server vue.js typescript oracle hibernate internet-explorer github tensorflow laravel symfony redis html5 google-app-engine nginx firefox sqlalchemy lucene erlang flask vim solr webview facebook zend-framework virtualenv nosql ide twitter safari flutter bundle phonegap centos Register | Login | Edit Tags | New Questions | 繁体 | 简体


5 questions online user: 21

0
votes
answers
7 views
+10

Appium的iOS Safari中打開新的標籤頁,接受警示和兩個標籤

0

所以我測試web應用程序的,我要打開一個新標籤,切換到它之間切換,做一些投入,比切換回第一個選項卡這不止一次。 我嘗試打開新的標籤是這樣的:Appium的iOS Safari中打開新的標籤頁,接受警示和兩個標籤

((JavascriptExecutor) AppiumTestBase.getDriver()).executeScript("window.open('http://google.com', '_blank')"); 

這會導致下面的警告出現:

iOS pop-up

但我不能夠通過自動化與Appium接受它。

  • 使用以下功能:我已經試過的東西 「safariAllowPopups」 和 「autoAcceptAlerts」
  • 更改根據設置Safari在iOS的SIM
  • .switchTo()警報()接受。 ();我也等待Popup。
  • 在接受彈出窗口之前切換到本機上下文
  • 單擊名稱彈出.findElement(By.name(「Allow」))。click();

我還沒有嘗試過什麼:

  • 根據彈出座標大坪在屏幕上。我沒有嘗試過,因爲我不確定如何獲得「允許」按鈕的位置。

而我的另一個問題是如何將我兩個選項卡之間切換?我還沒有嘗試過任何東西,但研究表明我用窗口上下文來嘗試它。

其他一些信息:

  • 目前有iPhoneSE的iOS 9.3模擬器測試,解決方案應爲幾種配置
  • 工作
  • Appium是最新版本
  • 類「AppiumTestBase」只發目的是設置功能並初始化AppiumDriver
沙发
0
0

請在嘗試更改此Safari瀏覽器中的無彈出框後嘗試使用此端口

desired_capabilities=automationName:XCUITest,browserName:safari,platformName:iOS,platformVersion:11.1,deviceName:iPhone 6,nativeWebTap:True,safariIngoreFraudWarning:True 
0
votes
answers
6 views
+10

JavaScript的不工作在Safari(蘋果機和iOS)

1

我實現了使用JavaScript即時搜索功能在我的傑奇網站: https://cecilialee.github.io(庫:https://github.com/cecilialee/cecilialee.github.ioJavaScript的不工作在Safari(蘋果機和iOS)

它完美的Chrome和Firefox。但是,當我在Safari上測試它時,無論在Mac或iPhone上,腳本似乎都不起作用。

我該怎麼辦?

沙发
0
3

好的,我找到了答案。

當我檢查Safari時,發現SyntaxError: Can't create duplicate variable that shadows a global property: 'results'

這顯然是個問題的Safari具有宣佈一個讓/ const的 變量共享相同的名稱作爲所選擇的id屬性。我有 一些用const聲明的變量,並得到相同的錯誤。 改變讓和仍然得到它。更改爲VAR,它工作。

參考: "can't create duplicate variable that shadows a global property"

因此,我改變了我的一些JavaScript的常量,以避免重複的ID。劇本又像魅力一樣起作用!

0
votes
answers
5 views
+10

appium ios某些按鈕無法檢測

0

在我們的應用程序中有一個自定義按鈕,我們無法通過appium iOS檢測。appium ios某些按鈕無法檢測

有問題的按鈕有一個Id。我們可以通過Xcode可訪問性檢查器來檢查它,但我們無法通過appium web inspector檢查它。

此外,我們嘗試點擊該按鈕與我們從Xcode可訪問性檢查器採取的id,但它不起作用。 Appium控制檯搜索它直到它超時。

這是怎麼實現的?因爲這對我們來說是一個阻礙問題。有什麼建議麼?

的XCode版本:9.2 MACOSX:10.12.6 Appium:1.7.1

XCode accessibility inspector view for the problematic button

Appium Web inspector view trying to inspect the on flexible

沙发
0
0

嘗試使用appium-desktop的元素檢查 - 它是appium正式支持的檢查。

有一種可能性,以發送的檢查中tap動作,這樣你就沒有肯定,如果appium可以用按鈕或不互動。

順便說一句,有時自定義元素可能不能用appium訪問,所以它可能是你的情況。

0
votes
answers
5 views
+10

轉換日小時分秒ISO 8601的

0

這裏是我的腳本轉換日小時分秒ISO 8601的

var specialDate = "<?php echo trim(date('Y-m-dTH:i:s',strtotime($time[1])));?>"; 
    var countDownDate = new Date(specialDate).getTime(); 
var now = new Date().getTime(); 

    // Find the distance between now an the count down date 
    var distance = countDownDate - now; 

var days = Math.floor(distance/(1000 * 60 * 60 * 24)); 
var hours = Math.floor((distance % (1000 * 60 * 60 * 24))/(1000 * 60 * 60)); 
var minutes = Math.floor((distance % (1000 * 60 * 60))/(1000 * 60)); 
var seconds = Math.floor((distance % (1000 * 60))/1000); 

var countdown = days + "d " + hours + "h " + minutes + "m " + seconds + "s "; 

上面的代碼工作,除了野生動物園所有的瀏覽器完全正常。 谷歌搜索後,我才知道我需要將其轉換爲ISO 8601兼容Safari的工作(目前它顯示NAND nanh nanm NaN的錯誤在Safari瀏覽器iPhone 6)

我是我的電話的詳細 enter image description here

enter image description here

編輯: 這裏是頁面的源代碼 enter image description here

+0

它不是一個錯誤,這是一個值... – Teemu

+0

所以是距離的時間戳還是一個倒計時(以毫秒)? – Kyon

+0

@Teemu這個'var countdown'是我的倒數計時器在所有的瀏覽器上正常工作。如果我需要修改它,你能建議它的替代嗎? –

沙发
0
0

嘗試改變如下:

var specialDate = "<?php echo trim(date('Y-m-dTH:i:s',strtotime($time[1])));?>"; 
    var countDownDate = new Date(specialDate).getTime(); 

要:

// echo php timestamp 
var specialDate = <?php echo strtotime($time[1]);?>; 
// multiply by 1000 for equivalent of `Date.getTime()` 
var countDownDate = specialDate * 1000; 
+0

沒有成功..仍然是相同的問題 –

+0

在頁面源代碼中,你認爲'specialDate'的值是什麼? – charlietfl

+0

我編輯了這個問題,並添加了在源文件中查看的功能的屏幕截圖。 –

0
votes
answers
3 views
+10

如何使用PHP在控制檯中打印?

0

我知道這個問題已經在這個論壇上問了很多次,但是我試過的所有東西都沒有用。 我通常使用safari,我想知道如何在Safari瀏覽器中打印。 我直接在ftp服務器上工作,所以我不能像mamp那樣在程序中安裝任何東西。 我使用safari,但如果你知道另一種瀏覽器的解決方案,我很樂意嘗試。如何使用PHP在控制檯中打印?

+2

你嘗試過的是什麼沒有奏效?您必須通過JS打印到控制檯,但是您可以生成要在PHP腳本中打印的數據。 –

+3

您使用JavaScript打印到瀏覽器控制檯,而不是使用PHP打印。我想你的PHP代碼可以簡單地發出打印到控制檯的JavaScript代碼。例如:'echo「」;' – David

沙发
0
1

與您的瀏覽器中的虛擬機中運行的Javascript不同,PHP在遠程計算機上運行。除非您花費精力設置遠程調試,否則PHP在您編碼的工作站上沒有任何祕密通道。 JetBrains有一個不錯的IDE,並且提供關於如何設置這個祕密通信通道的documentation,以便您可以逐步完成代碼。這很相關。

Eclipse PDT是我使用的,它也有一個fairly elaborate setup

如果你只是想編寫消息,你可以檢查值和東西 - 像console.log,我建議你寫一個日誌函數寫入文件。事情是這樣的:

function my_log($msg) { 
    // consider changing this log file's location to something else 
    if (!file_put_contents("/tmp/my-log-file.txt", "[" . date("Y-m-d H:i:s") . "] " . $msg . "
", FILE_APPEND)) { 
     die("Unable to write log file!"); 
    } 
} 

請注意,如果您是通過Web服務器上運行PHP腳本,然後Web服務器用戶需要寫權限的文件。在Debian/Ubuntu機器上,apache用戶是www-data。在Red Hat/CentOs機器上,我認爲它是apache。你可以找出哪些用戶在Web服務器把你的服務器上運行此腳本,並加載它在瀏覽器中運行:

<?php 
passthru("whoami"); 

我在這裏說明假設你是一個* nix的機器上工作。如果你正在運行Windows,我們可能需要深入一點。

+0

謝謝你這個解決方案對我的目的很好。 –