2010-05-12 21 views
6

Sayfada başka bir sayfaya bağlantı olarak kullanılan düğme var. Böylece kullanıcı düğmeyi tıkladığında sağ sayfaya yönlendirilir.Selenium: Bir HTML düğme öğesine nasıl tıklanır?

PHPUnit için Selenium uzantısını kullanıyorum ve düğmenin kullanıcıyı doğru yönlendirdiğini sınamak istiyorum. İşte Testten çalışıyorum HTML: Ben düğmesini tıklayın farklı yaklaşımlar bir çok çalıştık

<button onclick="window.location='/sponsor';" value="Continue" type="button" id="sponsorContinue" name="sponsorContinue">Continue</button> 

ama bunların hiçbirini işe almak gibi olamaz:

$this->click("//button[@id='sponsorContinue']"); 

Bu komut, herhangi bir hata gerçekleştirir ve atmaz, ancak sayfa yeniden yönlendirilmez. Düğmeyi el ile tıkladığımda iyi çalışıyor. Ne yapmalıyım?

+0

Bu pasaj benim için iyi çalışıyor. Hangi tarayıcı/işletim sistemini kullanıyorsunuz? Javascriptsiz çözüm için –

cevap

2

İşte sorun ... HTML yanlıştır ve bir sonraki sayfaya devam etmek için kullanıcıları javascript kullanmaya zorlamaktadır. Bunun yerine bu HTML'yi kullanın. Temiz ve javascript'e dayanmıyor.

<form method="get" action="/sponsor"> 
    <button type="submit" id="sponsorContinue">Continue</button> 
</form> 

Ayrıca, bu şimdi çalışacaktır:

$this->click('sponsorContinue'); 

Ancak, see this question, işe window.location almaya çalışıyorsanız.

+0

+1. Ama yine de neden Selenium onclick olayını tetiklemiyor? –

+1

Bu durumda, düğme HTML'sini değiştirmeyi kabul ediyorum. Ancak gelecekteki olayları ateşlemeniz gerekiyorsa, Selenium bunu FireEvent ile yapmanıza izin verir! – Zugwalt

+0

@Zugwalt Safari'de çalışmak için yangın alamıyorum 4 – Andrew

İlgili konular