私はC#と特にSeleniumの初心者です。私が提供しているコードは意図したとおりに動作しますが、私はそれに追加したいと思います。基本的にSeleniumを使用してLinkedinにログインし、会社の現在の従業員(この例ではWalmart)を検索し、各ユーザーの "send inmail"のリンクを削ります。もうありません。以下は、linkedin、loginを開き、walmartをsearchboxに入力し、次のボタンをクリックします。特定のリンクを抽出してテキストファイルに書き込む方法
すべてのSend InMailボタン内のリンクをテキストファイルに書きたいと思います。送信InMailボタンのいずれかを点検すると、次が得られます。
<a class="primary-action-button label" href="/requestList?displayProposal=&destID=262919732&creationType=DC&authToken=BrmS&authType=name&trk=vsrp_people_res_pri_act&* amp;trkInfo=VSRPsearchId%3A5225861601486589992400%2CVSRPtargetId%3A262919732%2CVSRPcmpt%3Aprimary">Send InMail</a>
私はすべての「次」ボタンを介してサイクルとしてテキストファイルにこれらのリンクの全てを書きたいと思います。また、ドロップダウンリストから「検査」できなかった値を選択する方法を知りたいと思います。「Walmart」などの検索ボックスに何かを入力すると、ドロップダウンで「ウォルマートで現在働いている人」などを選択するオプションなどです。何らかの理由で開発者モードでそのオプションを検査することさえできませんでした。 私のコードを更新しました...これは今、必要なものをしたいと思っています...しかし、 "次の"ボタンが "InMailの送信"ボタンの前にロードされているタイミングの問題があるようです...それは、コンソールにはいくつかの結果を印刷し、今後数回のクリックが、その後、メルトダウンに思われます
// Go to the home page
driver.Navigate().GoToUrl("https://www.linkedin.com");
// Get User Name field, Password field and Login Button
var userNameField = driver.FindElementById("login-email");
var userPasswordField = driver.FindElementById("login-password");
var loginButton = driver.FindElementByXPath("//input[@value='Sign in']");
// Type user name and password
userNameField.SendKeys("[email protected]");
userPasswordField.SendKeys("Password123");
// and click the login button
loginButton.Click();
// perform search
var newSearch = driver.FindElementById("main-search-box");
var searchButton = driver.FindElementByName("search");
// search
newSearch.SendKeys("walmart");
searchButton.Click();
// Get all links from Send InMail buttons
List<IWebElement> elementList = new List<IWebElement>();
elementList.AddRange(driver.FindElements(By.LinkText("Next >")));
if (elementList.Count > 0)
{
foreach(IWebElement item in driver.FindElements(By.LinkText("Send InMail")))
{
Console.WriteLine(item.GetAttribute("href"));
var goForward = driver.FindElementByLinkText("Next >");
goForward.Click();
}
}
Console.ReadLine();
私はこれをC#でセレンを使用して、学習の練習と同じようにしたいと思います。私は、 "Send InMail"ボタンに関連するリンクを印刷したいと思います。 'var mailLinks = driver.FindElementsByLinkText(" Send InMail ");と ' Console.WriteLine(mailLinks); 'は、私が望んでいるhrefリンクを返しません。これはコンソールに:_System.Collections.ObjectModel.ReadOnlyCollection'1 [OpenQA.Selenium.IWebElement] _ – user3157868
OK ...私はあなたの提案(2tの)から.getAttribute( "href")を使用し、それは印刷させる実際のリンク – user3157868
私はちょうどセレンでC#のみを使用してすべてのリンクを印刷する方法を知りたいです – user3157868