我有大约500个可能到特定页面的路径,我需要测试所有这些路径.该页面的每个路径看起来都与此类似(使用PHP Web驱动程序;通常有大约10个步骤):
// Navigate to form
$driver->get('http://www.domain.com');
$driver->get($driver->findElement(WebDriverBy::xpath("//a[contains(text(),'Foo 1')]"))->getAttribute('href'));
$driver->findElement(WebDriverBy::xpath("//div[@class='countryHeader']//a[contains(text(), 'Bar 1')]"))->click();
$driver->findElement(WebDriverBy::xpath("//form[@name='formDisclaimer']//input[contains(@class, 'button')]"))->click();
Run Code Online (Sandbox Code Playgroud)
我不想为所有可能的页面路径的所有步骤编写代码.但是,我确实拥有数据库中步骤的所有相关细节(例如XPath,节点可能包含的字符串等).
有没有办法让我"动态"生成某种配置文件(XML或JSON),我可以将其作为一组指令提供给驱动程序?
我从MAC终端安装了appium-1.5.1.安装还可以,但出于某种原因我需要安装它的路径.谁能告诉我安装目录在哪里?
Firefox - 51.0.1 Selenium - 3.0.5 Ubuntu - 16.04(64 位)
这是我的代码的样子:
profile = Selenium::WebDriver::Firefox::Profile.new
profile['browser.download.dir'] = "/tmp/webdriver-downloads"
profile['browser.download.folderList'] = 2
profile['browser.helperApps.neverAsk.saveToDisk'] = "application/pdf"
profile['pdfjs.disabled'] = true
driver = Selenium::WebDriver.for :firefox, :profile => profile
driver.get "https://s3.amazonaws.com/shopsocially-misc/vfs/vfs_test_sample.csv"
Run Code Online (Sandbox Code Playgroud)
请运行上面的代码,然后您会看到弹出窗口。
这是我得到的错误:
Selenium::WebDriver::Error::UnknownError: Failed to decode response from marionette
from /var/lib/gems/2.3.0/gems/selenium-webdriver-3.0.5/lib/selenium/webdriver/remote/response.rb:69:in `assert_ok'
from /var/lib/gems/2.3.0/gems/selenium-webdriver-3.0.5/lib/selenium/webdriver/remote/response.rb:32:in `initialize'
from /var/lib/gems/2.3.0/gems/selenium-webdriver-3.0.5/lib/selenium/webdriver/remote/http/common.rb:85:in `new'
from /var/lib/gems/2.3.0/gems/selenium-webdriver-3.0.5/lib/selenium/webdriver/remote/http/common.rb:85:in `create_response'
from /var/lib/gems/2.3.0/gems/selenium-webdriver-3.0.5/lib/selenium/webdriver/remote/http/default.rb:107:in `request'
from /var/lib/gems/2.3.0/gems/selenium-webdriver-3.0.5/lib/selenium/webdriver/remote/http/common.rb:63:in `call'
from /var/lib/gems/2.3.0/gems/selenium-webdriver-3.0.5/lib/selenium/webdriver/remote/w3c_bridge.rb:640:in `raw_execute'
from /var/lib/gems/2.3.0/gems/selenium-webdriver-3.0.5/lib/selenium/webdriver/remote/w3c_bridge.rb:615:in `execute'
from /var/lib/gems/2.3.0/gems/selenium-webdriver-3.0.5/lib/selenium/webdriver/remote/w3c_bridge.rb:126:in `get'
from /var/lib/gems/2.3.0/gems/selenium-webdriver-3.0.5/lib/selenium/webdriver/common/navigation.rb:32:in `to'
from /var/lib/gems/2.3.0/gems/selenium-webdriver-3.0.5/lib/selenium/webdriver/common/driver.rb:132:in `get'
from (irb):70
from …Run Code Online (Sandbox Code Playgroud) 我在浏览Python 3数据类型时发现了一种奇特的行为,尤其是字符串.如果两个字符串a ,并b有那么相同的值a is b变True(字符串不得包含连字符当然).
如果:
>>> a = 'string_without_hyphen'
>>> b = 'string_without_hyphen'
Run Code Online (Sandbox Code Playgroud)
然后:
>>> a is b
True
>>> a == b
True
Run Code Online (Sandbox Code Playgroud)
但如果:
>>> a = 'string-with-hyphen'
>>> b = 'string-with-hyphen'
Run Code Online (Sandbox Code Playgroud)
然后,
>>> a is b
False
>>> a == b
True
Run Code Online (Sandbox Code Playgroud)
这困惑了我.
为什么会这样?