2013-07-22 5 views
0

내가 수행하고있는 프로젝트는 봇과 같은 것으로 응용 프로그램의 프로세스 (일부 자동 q & 테스트 용)를 가져 와서 값을 추가하고 응용 프로그램에서 값을 편집합니다 출력이 예상대로되는지 확인하십시오.표 셀에 ComboBox 값 설정 C#

음, 응용 프로그램 창 (창)을 가져 왔는데 다른 응용 프로그램에 추가 된 DataGridView 항목을 얻으려고합니다. 나는 그것이 "DataGridView1"이라는 것을 알고 있고, (SpecFlow와 White.Core) 사용하고있는 UI 인터페이스는 다른 응용 프로그램에서 DataGridView 항목을 가져 오는 것을 지원하지 않는다.

해결 방법으로, 나는 DataGridView 항목을 테이블로 잡았다. . 이제 문제가 발생했습니다. 해당 셀 에 선택을 지원하지 않는 ComboBox가 포함 된 데이터 표보기에서 셀 값을 설정하려고합니다. 매번 Cell.SetValue (문자열)을 수행 할 때마다 값을으로 설정합니다. 내 UI를 탐색 할 때까지

기본적으로 내 질문은, 내가 테이블 셀의 값을 설정할 수있는 방법이 있습니까? 콤보 상자가 포함 된 DataGridView 셀이되어야합니까? 나는 Q & 자동화를 들어

public void InsertValues(String price, String name) 
    { 

    //actually is the following 
    //DataGridView Data = window.Get<DataGridView>("dataGridView1"); 
    //but this is not supported by the White.Core.UIItems. 

     Table Data = window.Get<Table>("dataGridView1"); 
     int numRows = 0; 
     foreach (White.Core.UIItems.TableItems.TableRow tbr in Data.Rows) 
      numRows++; 

//get the last row in the table 
     White.Core.UIItems.TableItems.TableRow leaseRow = Data.Rows[numRows - 1]; 


     White.Core.UIItems.TableItems.TableCell PriceCell = leaseRow.Cells["price_val"]; 
     White.Core.UIItems.TableItems.TableCell NameCell = leaseRow.Cells["name_val"]; 


//set the values of the various cells in the table 
     PriceCell.Click(); 
     PriceCell.SetValue(pricingFormulaName); 
     PriceCell.Enter(pricingFormulaName); 

     NameCell.Click(); 
     NameCell.SetValue(feeScheduleName); 
     NameCell.Enter(feeScheduleName); 

    } 

답변

0

일이하고 싶은 것을 위해 코드에서 몇 가지 의견을 추가 한, 내가보기 엔 셀레늄을 추천 할 것입니다 ... 당신은 HTML 스크립트 또는 귀하의 경우는 C#에서 하나를 만들 수 있습니다 응용 프로그램은 던졌다 실행과 셀레늄 당신은

 driver.FindElement(By.XPath("//div[@id='Body']/form/div/div[2]/div[13]/div/div/div/div[2]/button")).Click(); 

또는

 driver.FindElement(By.XPath("//a[contains(text(),'[add]')]")).Click(); 

의 경우 CSS에서 지정할 수 있습니다 또는 ID로 호출 할 수 있습니다 ... 그리고 가장 중요한 부분은 셀레늄 오픈 소스입니다 ... 아니면 SpecFlow에서 내가 셀레늄에서 한 것처럼 CSS 선택이나 XPath를 지정할 수 있습니다