2017-05-03 1 views
0

사이트에 갈 때 사이트에 갈 때 "계속"버튼에는 class = "button"또는 class = "btn"의 두 가지 옵션이 있습니다. 1 FindElement에서 2 개의 클래스를 한 번에 검색하는 방법. 어떻게 보일지 모르겠지만 (개략적으로)C# FindElement ClassName 열거 형

IWebElement element = driver.FindElement(By.ClassName("button" or "btn")); 

그렇지 않으면 사용하기가 더 쉽습니까?

IWebElement element18 = driver.FindElement(By.XPath("//div[contains(@class, 'button') or contains(@class, 'btn')]")); 

작동하지 않습니다. XPath에 당신이 뭔가를 쓸 수 있습니다 작동하지 않는 경우

주의

+0

[여러 클래스 이름으로 div 요소 찾으시겠습니까?] (http://stackoverflow.com/questions/21713280/find-div-element-by-multiple-class-names) –

+0

아니요, 그는 ClassName 만 찾습니다. . Xpath에서 찾을 수 없습니다. –

+0

XPath가 작동하지 않는 이유는 무엇입니까? 널 예외가 뭔지 알아? – unickq

답변

1

주셔서 감사합니다 :

public IWebElement GetElements(params By[] searchBy) 
{ 
    var list = new List<IWebElement>(); 
    foreach (var by in searchBy) 
    { 
     list.AddRange(driver.FindElements(by));    
    } 
    return list.Count == 1 ? list[0] : null; 
} 
0

당신이 더되고 싶은 경우는, ".button, .btn" CSS를 선택기를 사용하여 정말 간단하다, 또는 특정, "div.button, div.btn". 쉼표는 OR 연산자와 동일합니다.