- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
lý lịch
我设置了一个Selenium Grid项目,以在两种不同的浏览器Chrome和Firefox中执行测试。我正在使用Gradle执行测试。该测试将成功执行两次,一次按预期在Chrome中执行,一次在Firefox中执行,然后第三个实例将在默认浏览器中执行并失败。
预期结果
geckodriver
)将打开,该规范将运行并通过。 geckodriver
)将打开,该规范将运行并通过。 firefoxdriver
)将打开,该规范将无法运行,并且将失败。 test {
actions = []
}
firefox
驱动程序(而不是gecko
hoặcmarionette
驱动程序)将其打开。firefox
驱动程序很旧,并且不支持Firefox的最新版本,但是当您未指定要在其中执行测试的浏览器时,它是Selenium的“默认”浏览器。class W3SchoolsFormExampleSpec extends Specification {
def 'Test form submission is successful on W3Schools'() {
when: 'Name info is submitted into the form'
open('https://www.w3schools.com/html/html_forms.asp')
$(byName('firstname')).setValue('Clark')
$(byName('lastname')).setValue('Kent')
$x('//*[@id="main"]/div[3]/div/form/input[3]').click()
and: 'Switch to newly opened tab'
switchTo().window(1)
then: 'New page should display the passed-in request params'
$x('/html/body/div[1]').shouldHave(text('firstname=Clark&lastname=Kent'))
}
}
xây dựng.gradle
文件的一个片段:
test {
// Prevent Gradle from strangely executing Spock tests twice
actions = []
}
task testW3SchoolsForm(type: Test) {
outputs.upToDateWhen { false }
doFirst {
// Check to see that the Selenium drivers are installed
if (!file("C:/Selenium/chromedriver.exe").exists()) {
throw new GradleException(
'ERROR: Please install the web drivers in the correct location.'
)
}
// Register the hub
GridLauncherV3.main('-role', 'hub')
// Register the Chrome and Firefox nodes
GridLauncherV3.main('-role', 'node',
'-browser', 'broswerName=chrome,platform=WINDOWS',
'-hub', 'http://localhost:4444/grid/register',
'-port', '4446'
)
GridLauncherV3.main('-role', 'node',
'-browser', 'broswerName=firefox,platform=WINDOWS',
'-hub', 'http://localhost:4444/grid/register',
'-port', '4446'
)
}
}
enum BrowserType {
CHROME('chrome'),
FIREFOX('gecko')
def browserString
BrowserType(browserString) {
this.browserString = browserString
}
}
BrowserType.values().each { browserType ->
tasks.create("testW3SchoolsForm${browserType}", Test) {
// Force the tests to run every time
outputs.upToDateWhen { false }
// Allow parallel execution
maxParallelForks = 3
forkEvery = 0
def drivers = [
(BrowserType.CHROME): 'chromedriver.exe',
(BrowserType.FIREFOX): 'geckodriver.exe'
]
def browserProperty = browserType.browserString
def webdriverPath = file("C:/Selenium/${drivers[browserType]}")
// Set the respective system properties for each browser
systemProperties["webdriver.${browserProperty}.driver" as String] = webdriverPath
systemProperties['selenide.browser'] = browserType.browserString
filter {
include 'com/example/dummy/W3SchoolsFormExampleSpec.class'
}
testLogging {
events 'PASSED', 'FAILED', 'STARTED', 'SKIPPED'
}
testW3SchoolsForm.dependsOn "testW3SchoolsForm${browserType}"
}
}
1 Câu trả lời
经过几天的反复试验,并通过在Gradle forums上发布找到了解决方法,我找出了原因,这可能对将来的读者有所帮助。
创建自定义Bài kiểm tra
任务时请多加注意。
默认情况下,应用Java
hoặcGroovy
插件将自动创建一个默认的Bài kiểm tra
任务,该任务将在Bài kiểm tra
源目录下执行所有测试。
通过执行以下操作创建自定义测试任务时:
task testABC(type: Test) {
filter {
include "ABCTest"
}
}
Bài kiểm tra
任务。如果您希望禁用默认
Bài kiểm tra
任务的执行,请设置
test.enabled = false
.
关于selenium - Selenium Grid总是执行我的测试的多余实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46529905/
Có cách nào để ép kiểu một thể hiện của lớp do người dùng định nghĩa sang một trong các kiểu này bằng cách sử dụng các hàm tạo kiểu chuẩn (ví dụ: int, set, dict, list, tuple, v.v.) theo cách do người dùng định nghĩa không? Ví dụ, lớp Ví dụ:
Tôi biết câu hỏi này đã có nhiều câu hỏi trên Stackoverflow, nhưng ngay cả với nhiều câu trả lời, những câu trả lời đó cũng không giúp ích cho tôi nhiều và tôi không tìm ra câu trả lời. Trong WebAPP của tôi, nó hoạt động tốt, nhưng khi tôi chuyển đổi nó thành API thì nó không hoạt động (nhãn chủ đề
Câu hỏi này đã có câu trả lời: Tại sao toán tử ba ngôi lại ép kiểu số nguyên một cách bất ngờ? (3 câu trả lời) Đã đóng 9 năm trước. Gần đây tôi đã gặp phải một cái bẫy Java
Tôi thử cấu hình Firebase bằng FirebaseApp.configure() nhưng tôi gặp lỗi sau: *** Đang chấm dứt ứng dụng do ngoại lệ chưa được phát hiện 'c
Tôi có một lớp thực thể nhân viên tự liên kết với các cột id, name và ref liên quan đến chính nó. Tôi muốn tạo một phiên bản mới của nó và lưu nó vào cơ sở dữ liệu. Đầu tiên tôi tạo một thể hiện của lớp Employee và đặt tên là manager. Sau đó
Tôi có một biểu mẫu để thêm căn hộ mới, trong biểu mẫu đó tôi có một menu thả xuống nơi người dùng có thể chọn người chịu trách nhiệm. Có vẻ như khi bạn chọn từ danh sách thả xuống và cố gắng lưu căn hộ, ứng dụng của tôi nghĩ rằng người đó đã bị thay đổi. Nó cho tôi lỗi sau đây chỉ ra rằng tôi nên lưu trước
Từ trang Visualforce, tôi cần lấy URL của phiên bản Salesforce của tổ chức chúng tôi, không phải URL Visual Force. Ví dụ, tôi cần https://cs1.salesforce.com
Tôi đã tìm thấy một số câu trả lời khả thi cho câu hỏi của mình, nhưng câu trả lời ở đây là về việc nâng cấp từ Hibernate 3.4.0GA lên Hibernate 4.1.8. Vì vậy, điều này từng hoạt động trong các phiên bản trước, tôi đã tìm kiếm xung quanh để biết lý do tại sao nó bị hỏng trong phiên bản mới này
Có vẻ như câu hỏi này được hỏi đi hỏi lại nhiều lần và tôi vẫn không thể tìm ra câu trả lời giải quyết được vấn đề của mình. Tôi có mô hình miền như bên dưới. Mỗi "Người dùng bảo mật" mới được tạo hoặc cập nhật đều yêu cầu tôi phải đảm bảo rằng người dùng đó có hồ sơ, nếu chưa có, tôi sẽ tạo một hồ sơ mới và chỉ định cho người dùng đó. Yêu cầu về tập tin cấu hình
Tôi đang gặp khó khăn trong việc tìm ra lý do tại sao JPA không phân tầng mối quan hệ @ManyToMany của tôi. Tất cả các câu trả lời tôi tìm thấy đều liên quan đến các câu lệnh cascade bị thiếu. Nhưng tôi có chúng và vẫn nhận được: Do: org.hibernate.Transi
API Dịch vụ Play nêu rằng có một thứ gọi là Instance ID Tuy nhiên, tôi không thể nhập lớp InstanceID sau khi đưa nội dung sau vào Android Studio: biên dịch "com.go
Tôi đang sử dụng khung Seam. Tôi có 2 thực thể: Request.java @Entity @Table(name = "SRV_REQUEST") public class Request { private
Câu hỏi này liên quan đến việc xây dựng một thể hiện Monad thích hợp từ một monad, nhưng chỉ trong một số ràng buộc nhất định - ví dụ như Set
Tôi đang cố gắng thực hiện truy vấn này: StringBuffer sb = new StringBuffer(); sb.append("select p from PointsEntity p " + "where
Tôi đang cố gắng hiểu xem liệu có thể thay đổi cấu hình ngủ đông của mình và sử dụng một phiên bản MySQL duy nhất (thay vì nhiều phiên bản MySQL mà tôi hiện có) hay không: Tôi có một ứng dụng Java sử dụng chế độ ngủ đông, với 2 lược đồ
Tôi có một bố cục trượt tab bao gồm bốn tab, mỗi tab có bố cục và đoạn riêng, trong bố cục hoạt động chính của tôi, viewpager có vai trò thay đổi các tab. Một View (tab) cụ thể có sẵn trong ứng dụng
Tôi đã thấy rất nhiều bài đăng tuyên bố rằng họ có một phiên bản RDS chạy MySql nhưng không thể kết nối với nó, nhưng tôi lại không có RDS đang chạy. Tôi sử dụng phiên bản EC2 để lưu trữ blog WordPress của mình, blog này được tôi cài đặt bằng Trình cài đặt nền tảng web.
Vì tôi đang chạy một ứng dụng (Airflow) trong môi trường ảo python trên phiên bản ec-2 của mình và tôi muốn chạy lệnh trong môi trường python mặc định trên cùng phiên bản ec2 đó, nên tôi nghĩ sẽ dễ dàng hơn nếu ssh vào phiên bản của riêng tôi.
Câu hỏi này đã có câu trả lời: Cách sửa lỗi Hibernate "đối tượng tham chiếu đến một phiên bản tạm thời chưa lưu - lưu tra
Ví dụ: chạy APP1 .. ... chạy APP1 ... chạy APP2 Làm sao để báo cho Vue trong APP2 rằng tôi cần gọi APP1?
Tôi là một lập trình viên xuất sắc, rất giỏi!