Ich lerne Selen Web-Treiber mit Ruby und Seitenobjektmodell. Mein Testcode ist unten:Ruby-Selen/Seite Object Model - Start Browser
Wenn ich den Test ausführen bekomme ich einen Fehler nicht in der Lage Element zu finden, das aufgrund der Seite geladen ist, aber nicht auf den richtigen Link umleiten. Normalerweise würde ich driver.gets verwenden, aber kann es nicht mit dem Seitenobjektmodell arbeiten? mit dem Code unten in einer anderen Klasse
require 'rubygems'
require 'selenium-webdriver'
require 'page-object'
class ContactDemoQa
include PageObject
text_field(:name, :css => '#wpcf7-f375-p28-o1 > form > p:nth-child(2) > span > input')
text_field(:email, :css => '#wpcf7-f375-p28-o1 > form > p:nth-child(3) > span > input')
text_field(:subject, :css => '#wpcf7-f375-p28-o1 > form > p:nth-child(4) > span > input')
text_area(:messages, :css => '#wpcf7-f375-p28-o1 > form > p:nth-child(5) > span > textarea')
button(:send, :css => '#wpcf7-f375-p28-o1 > form > p:nth-child(6) > input')
def contact_method(name, email, subject, message)
self.name = name
self.email = email
self.subject = subject
self.message = message
send
end
browser = 'http://demoqa.com/contact/'
browser = Selenium::WebDriver.for :firefox
contact_demo_qa = ContactDemoQa.new(browser)
contact_demo_qa.contact_method 'rob', '[email protected]', 'test', 'Yellow'
end
mit Seitenobjektmodell werden Sie in einer Klasse haben Seite Objekte und Methoden gemeint und dann rufen Sie die Methode?
browser = 'http://demoqa.com/contact/'
browser = Selenium::WebDriver.for :firefox
contact_demo_qa = ContactDemoQa.new(browser)
contact_demo_qa.contact_method 'rob', '[email protected]', 'test', 'Yellow'
Sind Sie fragen, ob diese letzten 4 Zeilen in der 'ContactDemoQa' Klasse sein sollte oder nicht? Oder fragst du, wo 'driver.get' heißen würde? –
Ich frage, ob die letzten 4 Zeilen in einer anderen Klasse sein sollten, ja. Auch wenn ich diese Klasse laufen unter Hinweis darauf geschieht, da es nicht auf die richtige URL nicht direkt waren die Seitenobjekte sind. Ich vermisse die URL, aber ich weiß nicht, wie ich sie mithilfe des Seitenobjektmodells an die richtige URL verweisen kann. Normalerweise verwende ich driver.gets (http) in Java @JustinKo – Speedychuck