最近我的Firefox更新到版本51.0.1.最初它显示了一些与Firebug相关的提醒检查(我不清楚),但我忽略了它.现在,Firebug工具栏按钮始终显示为已停用.
我已经多次重新安装了Firebug,但结果总是一样的.
有兼容性问题吗?如何激活Firebug?
我正在为网站注册做自动化,但问题是,一旦我进入手机号码,它就会发送OTP.输入otp后,它会要求输入密码,而且我可以进行注册.
一旦我进入手机号码,有没有办法获得OTP代码?或者我们可以使用selenium webdriver自动化OTP吗?
我正在尝试为使用TabPanel的GWT应用程序创建WebDriver测试.单击选项卡在IDE中工作正常(它使用x-path查找选项卡)但是我无法在JUnit测试中单击选项卡.
所有元素都有一个包含选项卡的debugID(虽然标签ID似乎在IDE中似乎不起作用)并且我正在继承com.google.gwt.user.Debug.我试图通过Xpath定位,这是IDE的默认设置.
genericElement.findElement(By.xpath("//div[@id='gwt-debug-mainTabPanel']/div[2]/div/div[6]/div/div")
Run Code Online (Sandbox Code Playgroud)
我已经尝试了文档中概述的代码
genericElement.findElement(By.id("gwt-debug-mainTabPanel-bar-tab6")
Run Code Online (Sandbox Code Playgroud)
我也尝试了moveToelement(因为clickAt不再支持)并点击但是也会失败(除非我误解了它).我也想避免这种情况,因为这似乎是不好的做法.
Actions builder = new Actions(driver);
genericElement = driver.findElement(By.id("gwt-debug-mainTabPanel"));
Action action = builder.moveToElement(genericElement,400, 370).click().build();
action.perform();
Run Code Online (Sandbox Code Playgroud)
java.lang.UnsupportedOperationException:移动到任意X,Y坐标不受支持.
我知道GWT和Webdriver的相处并不好 - 但我觉得这会有一个解决方案.任何人都可以提供任何帮助 - 有没有人实现了一个有效的Webdriver测试,他们点击了GWT TabPanel中的一个标签?
编辑
我设法使用Firebug和xpath定位器找到节点(你可以添加/..to移动到父gwt-TabLayoutPanelTabInner或添加/../ ..移动到祖父母gwt-TabLayoutPanelTabInner它应该仍然有用 - 它在IDE中)
genericElement = driver.findElement(By.xpath("//div[contains(@class,'gwt-HTML') and contains(text(),'Users')]"));
Run Code Online (Sandbox Code Playgroud)
然而,点击不会更改为所需的选项卡 - 似乎是一个已知问题(可能不需要moveToElement和click(genericElement) - hust给它一个镜头)
Actions builder = new Actions(driver);
builder.moveToElement(genericElement).click(genericElement).build().perform();
Run Code Online (Sandbox Code Playgroud)
见第3节 ....这很有趣:)
我正在尝试将 pdf 嵌入到 html 文档中。https://pdfobject.com/static.html这是参考站点。
使用页面上的<embed>标签嵌入 pdf 文档HTML
我有以下事情-
如果我打开 chrome 浏览器(我正在使用Version 55.0.2883.87 m)并检查该<embed>标签上的元素或单击F12然后检查相同的内容,它会将标签内容显示为 -
<embed src="chrome-extension://oemmndcbldboiebfnladdacbdfmadadm/content/web/viewer.html?file=https%3A%2F%2Fpdfobject.com%2Fpdf%2Fsample-3pp.pdf#page=2" type="text/html" width="100%" height="100%">
Run Code Online (Sandbox Code Playgroud)但是如果我使用以下脚本来获取embed标签 html
System.setProperty("webdriver.chrome.driver", "D:\\Application\\chromedriver.exe");
driver = new ChromeDriver();
driver.manage().window().maximize();
driver.get("https://pdfobject.com/static.html");
driver.manage().timeouts().implicitlyWait(45, TimeUnit.SECONDS);
driver.switchTo().frame(1);
String tagdata = driver.findElement(By.id("plugin")).getAttribute("outerHTML");
System.out.println(tagdata);
Run Code Online (Sandbox Code Playgroud)
它检索结果为 -
<embed width="100%" height="100%" name="plugin" id="plugin" src="https://pdfobject.com/pdf/sample-3pp.pdf#page=2" type="application/pdf" internalinstanceid="9">
Run Code Online (Sandbox Code Playgroud)但是如果我chrome打开并检查嵌入,它会显示与上述结果相同的结果,但是如果我右键单击该标签然后单击,它会打开新的开发人员工具控制台,我看到标签为 -chromedriver.exeF12embedinspect element<embed>
<embed id="plugin" type="application/x-google-chrome-pdf" src="https://pdfobject.com/pdf/sample-3pp.pdf#page=2" stream-url="blob:chrome-extension://mhjfbmdgcfjbbpaeojofohoefgiehjai/e8337a7a-5af1-456c-8f7a-d8132c67fe6d" headers="Accept-Ranges: bytes
Cache-Control: max-age=2592000 …Run Code Online (Sandbox Code Playgroud) 我刚刚完成了使用 with 的测试自动化selenium。我想知道如何在json格式上单独保存测试数据。
你能告诉我如何在page object pattern.
在这里我使用了多个包。一个用于定位器识别,另一个用于初始化元素的页面工厂,另一个用于获取 URL 等常用值的包实用程序。我还有一个用于测试登录模块的测试包。
我不知道我应该把测试数据类放在哪里?
我想单独保留测试数据。不会散布在整个脚本中。将测试数据保存在 Json 中。并在需要时从那里阅读。
我仍然对我应该把它放在哪里感到困惑 json format
而且我的selenium代码不遵循框架。我没有遵循任何框架。有人请告诉我有关框架的信息吗?
框架是:Data driven,keyword driven,hybrid和modular。大多数人使用哪个框架,因为以及为什么?
作为测试人员应该了解所有框架吗?
我正在关注页面object design pattern:
页面对象:
package pageobjects;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.support.FindBy;
import org.openqa.selenium.support.How;
public class HomePage
{
@FindBy(how= How.NAME, using = "username")
WebElement username;
@FindBy(how=How.NAME, using = "password")
WebElement password;
@FindBy(how=How.XPATH, using="//*[@id=\'login-container\']/form/div[3]/div/p/input[1]" )
WebElement button;
//enter username
public void userLogin(String user, String …Run Code Online (Sandbox Code Playgroud) 我有一个网站,例如www.myfirstsite.com/myapp。
当我登录该站点时,确实从浏览器提取了身份验证的POST请求。
只是一个简单的身份验证(身份验证URL不同)过程。参数中的用户名和密码
用户名= abc_user
密码= 123456
完整的URL是 www.anothersite.com/login?username=abc_user&password=123456
当我使用POST请求时,Postman收到了预期的结果。
是否可以通过任何方式(我在URL中输入的任何脚本)从浏览器URL本身进行POST请求,例如GET Request进行身份验证
我最近将我的一个客户项目从Swift2iOS-charts 2 升级到Swift3iOS-charts 3。
经过几天的手动调整后,大多数代码都按预期运行,但是,我的水平条形图仍然存在问题。
图表用于显示为:
图表现在显示为:
图表核心代码:
func drawMarginChart() {
let labels = marginObject!.getLabelsForChart()
let values = marginObject!.getValuesForChart()
var dataEntries = [ChartDataEntry]()
for i in 0..<values.count {
let entry = BarChartDataEntry(x: Double(i), y: values[i])
dataEntries.append(entry)
}
let barChartDataSet = BarChartDataSet(values: dataEntries, label: "")
barChartDataSet.drawValuesEnabled = false
barChartDataSet.colors = ChartColorTemplates.joyful()
let barChartData = BarChartData(dataSet: barChartDataSet)
barChartMargins.data = barChartData
barChartMargins.legend.enabled = false
barChartMargins.xAxis.valueFormatter = IndexAxisValueFormatter(values: labels)
barChartMargins.xAxis.granularityEnabled = true
barChartMargins.xAxis.granularity = 1
barChartMargins.animate(xAxisDuration: 3.0, yAxisDuration: 3.0, easingOption: …Run Code Online (Sandbox Code Playgroud) 这个错误在以前运行良好的程序中突然出现。我绝对确定我没有对程序进行任何更改,因为它的功能是完美的,所以这是迄今为止我经历过的最奇怪和最令人沮丧的错误。
这是我试图执行的代码:
chrome_options.add_extension('C:\\chromedriver\\ModHeader_v (1).crx')
chrome_options.add_argument('--proxy-server=socks5://' + '127.0.0.1:9150')
driver = webdriver.Chrome('C:\\chromedriver\\chromedriver.exe', chrome_options = chrome_options)
Run Code Online (Sandbox Code Playgroud)
这会引发以下错误:
selenium.common.exceptions.WebDriverException:消息:未知错误:无法等待扩展后台页面加载:chrome-extension://idgpnmonknjnojddfkpgkljpfnnfcklj/_ generated_background_page.html 来自超时:从渲染器接收消息超时:10.000
(驱动程序信息:chromedriver =2.24.417431(9aea000394714d2fbb20850021f6204f2256b9cf),平台=Windows NT 10.0.15063 x86_64)
我认为 Tor 浏览器中的更改导致了此错误。没有其他潜在原因。
我想为API创建一个Stub,并希望验证服务器返回的API调用和响应.因为我已经实现了WireMock示例:
import org.junit.Rule;
import org.junit.Test;
import com.github.tomakehurst.wiremock.junit.WireMockRule;
public class MockTestDemo {
private static final int WIREMOCK_PORT = 8080;
@Rule
public WireMockRule wireMockRule = new WireMockRule(WIREMOCK_PORT);
@Test
public void exampleTest() {
stubFor(get(urlEqualTo("/login")).withHeader("Accept", equalTo("application/json"))
.willReturn(aResponse().withStatus(200).withBody("Login Success")
.withStatusMessage("Everything was just fine!"))
.willReturn(okJson("{ \"message\": \"Hello\" }")));
verify(getRequestedFor(urlPathEqualTo("http://localhost:8080/login"))
.withHeader("Content-Type",equalTo("application/json"))); }
}
Run Code Online (Sandbox Code Playgroud)
但是低于错误:
Run Code Online (Sandbox Code Playgroud)com.github.tomakehurst.wiremock.client.VerificationException: Expected at least one request matching: { "urlPath" : "localhosturl/login", "method" : "GET", "headers" : { "Content-Type" : { "equalTo" : "application/json" } } } Requests received: [ ] at …
背景:有产品列表页面,我必须获取所有产品名称(包括缺货产品),然后必须验证所有缺货产品到底.
问题:我已经浏览了所有页面并将产品名称存储在ArrayList中.
让我们说list1和内容是 -
[instant bcaa, vegan bcaa, complete bcaa energy™, branched chain amino acid (bcaa) tablets 1000mg, endure™, branched chain amino acids (bcaa), instant leucine, leucine tablets 1000mg, complete intra-workout™, leucine, bcaa jelly mix, complete hydration drink™, informed bcaa™, instant bcaa cocktail bundle]
Run Code Online (Sandbox Code Playgroud)
现在我有另一个只有Out Of Stock产品的清单
list2 和内容是 -
[informed bcaa™, instant bcaa cocktail bundle]
Run Code Online (Sandbox Code Playgroud)
我必须确保list1是否以相同的顺序包含所有list2项目