0

Formlarımın içinde birden fazla select2 seçeneğim olduğu bazı test senaryoları ile çalışıyorum. Sunucumdan gelen değerlerle select2 kutularını doldurmaya çalışıyorum (AJAX isteği). Selenyum kaydedici kullanmayı denedim. Bu iyi bir yardım değil. Select2'nin çalışmasını anlamıyor.Selenyum yardımı ile select2'den seçenekler nasıl seçilir IDE

Aşağıdaki komutlarım aşağıda yer almaktadır. aşağıdaki gibi

@driver.get(@base_url + "/app/customers") 
@driver.find_element(:link, "Add Customer").click 
@driver.find_element(:name, "customer[name]").click 
@driver.find_element(:name, "customer[name]").clear 
@driver.find_element(:name, "customer[name]").send_keys "Chinmay" 
Selenium::WebDriver::Support::Select.new(@driver.find_element(:xpath, "//*[@id=\"page-content\"]/div/div/div/div/form/div[4]/div[1]/div[4]/select")).select_by(:text, "label=Primary") 

Ve son satırı aşağıdaki hatayı

[error] Option with label 'Primary' not found 

Benim HTML kodu atıyor olan kodu için selenyum IDE kullanmak iyi bir fikir değil

<select class="form-control amura-select2 select2-hidden-accessible" data-type="ds" data-name="address_types" data-default="only" style="width:100%;" required="required" name="customer[address_attributes][address_type]" aria-required="true" tabindex="-1" aria-hidden="true"> 
<option value="primary">Primary</option> 
</select> 

cevap

1
  1. oluşturma

  2. Lütfen capybara veya watir-webdriver hakkında düşünün. Hoşuna gidecek.

  3. deneyin ben selenyum IDE kullanarak olumlu ve olumsuz yanlarını biliyoruz

    wait = Selenium::WebDriver::Wait.new(:timeout => 10) #Let's wait until Ajax-request will be done 
    wait.until { @driver.find_element(xpath: "//option[@value='primary']") } #That's the waiting 
    dropdown = @driver.find_element(xpath: "//select[@data-name='address_types']") #Nice way to find your dropdown 
    select_list = Selenium::WebDriver::Support::Select.new(dropdown) #Let's create select_list out of dropdown-element 
    select_list.select_by(:text, 'Primary') #Finally. 
    
+0

böyle bir şey yapmak. Capybara'yı kullanarak da çözümüm var. Ama bunu yapmak istediğim başka bir kullanım durumum var. Bu kodla ilgili yararlı bir şeyin var mı? –

+0

Net olmak için: Selenyum-webdriver kodu yukarıda verilmiştir. Selenyum IDE versiyonuna (selenise) ihtiyacınız var mı? – Antesser

+0

Farklı bir çözüm buldum. Çözümün bile işe yaradı. RunScript komutunu kullanarak birkaç select2 betiği çalıştırdım. Ve istediğim gibi çalışıyor. –