>

일부 웹 사이트를 자동화하고 있는데 그런 경우에 갇혀있었습니다. 나는 목록을 만들었고 모든 것이 나에게 좋으며 24 요소가 있습니다. 이것들은 매장에서 나온 제품으로 사진, 이름, 가격 등을 포함합니다. 그러나 이제 첫 번째 요소에서 두 가지를 가져 와서 콘솔에 표시해야합니다. 이름과 가격. 누구든지 제안 할 수 있습니까? 나는 앉아서 생각하지만 아무것도 나오지 않습니다. 내가 관리 할 수있는 것은 1 개의 항목에 대한 모든 것을 보내는 것입니다.

일부 Linq로 해결했지만 성공하지 못했습니다.

public List<string> ListOfElements()
{
    var elements = new List<string>();
    IReadOnlyCollection<IWebElement> listElements = _driver.FindElements(By.CssSelector(".category-list div[class='cat-prod-row js_category-list-item js_clickHashData js_man-track-event ']");
    foreach (IWebElement element in listElements)
    {
        elements.Add(element.Text);
    }
    return elements;
}
public void DisplayFirstElement()
{
    var firstElement = ListOfElements();
    Console.WriteLine(firstElement[0]);
}

첫 번째 요소의 이름과 가격을 얻은 다음 그 가격이 10보다 크다고 주장합니다.

  • 답변 # 1

    모든 요소 속성을 단일 문자열 모음으로 병합합니다. 따라서 해당 문자열 사이의 관계가 손실됩니다. 이 목록에서 22 번째 요소가 실제로 무엇인지 말하기는 어렵습니다. 가격입니까? 이름? 완전히 다른 것? 실제로 어떤 항목에 속합니까?

    대신 엔터티 목록을 반환 한 다음 첫 번째엔터티의 속성을 인쇄해야합니다.

    public List<IWebElement> ListOfElements()
    {
        var elements = new List<string>();
        return listElements = _driver.FindElements(By.CssSelector(".category-list div[class='cat-prod-row js_category-list-item js_clickHashData js_man-track-event ']");
    }
    public void DisplayFirstElement()
    {
        var allElements = ListOfElements();
        var firstElement = allElements.First();
        Console.WriteLine("FirstName: " + firstElement.Name + " Price: " + firstElement.Price);
    }
    
    

    물론 이것은 당신의 IWebElement 를 가정합니다   Name 가있다 -그리고 Price -재산.

  • 이전 python - 도시 이름, 섹터 ID 및 자동 증분 값을 사용하여 CaseID를 생성하고 싶습니다
  • 다음 javascript - 파일 입력 필드에 모든 Excel 형식을 허용하는 방법