셀레늄을 사용하여 트윗 자동화
도전에 대해
과제는 100일까지 코딩하거나 관련 작업을 수행하고 해시 태그 100DaysOfCode를 사용하여 매일 진행 상황에 대해 트윗하는 것입니다.
아이디어의 탄생
이 챌린지에서는 로그인하고 동일한 해시 태그를 입력하는 반복적인 작업이 있습니다. 셀레늄이 갑자기 클릭되었을 때 셀레늄을 배우고 있었습니다. 내 트윗을 자동화하는 데 지식을 사용하지 않겠습니까!
내가 자동화한 작업 단계:
1. 자격 증명을 제공하여 트위터에 로그온합니다.
2. 필요한 # 태그 자동 입력, 내 트윗 입력
지금은 수동입니다.
3. 트윗을 클릭합니다.
도구에 대한 간략한 설명 - Selenium
Selenium은 내 작업을 자동화하는 데 사용한 도구이므로 여기에 내가 사용한 도구 및 패키지에 대한 정보가 있습니다. 그것은 방대한 주제이지만 여기에서 몇 가지 중요한 영역을 언급하고 내 코드로 설명했습니다.
Selenium에는 다음과 같은 두 가지 패키지가 있습니다.
WebDriver : 웹 애플리케이션을 자동화하는 데 사용되는 오픈 소스 API 모음입니다. 다양한 브라우저를 지원합니다. 브라우저에서 웹 애플리케이션을 로드하는 방법이 있습니다.
WebElement : 인터페이스이며 웹 페이지의 모든 것을 웹 요소라고 합니다. 예: 입력 상자, 텍스트 상자, 버튼 등. WebElement의 개체와 메서드를 사용하여 웹 요소를 식별하고 작동합니다.
코드 블록
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
위의 코드는 패키지를 가져옵니다. 드라이버, 브라우저에서 앱을 실행하려면 크롬 드라이버가 필요합니다.
public class autoTweet {
WebDriver driver;
System.setProperty("webdriver.chrome.driver","C:\\Users\\xyz\\chromedriver.exe"); // setting our driver path
driver = new ChromeDriver();
driver.get("https://twitter.com/home");// using driver loads twitter
위의 코드 스니펫은 크롬에서 트위터를 시작하는 것입니다.
public void f() {
driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
WebElement username = driver.findElement(By.xpath("/html/body/div/div/div/div[2]/main/div/div/div[1]/form/div/div[1]/label/div/div[2]/div/input"));
username.sendKeys("[email protected]");// Give valid mail id, this is example
WebElement password = driver.findElement(By.xpath("/html/body/div/div/div/div[2]/main/div/div/div[1]/form/div/div[2]/label/div/div[2]/div/input"));
password.sendKeys("*****"); // give your password
driver.findElement(By.xpath("/html/body/div/div/div/div[2]/main/div/div/div[1]/form/div/div[3]/divSdiv")).click();// find Log in button and click
때때로 스크립트가 페이지가 로드되기 전에도 요소를 찾으려고 하기 때문에 시간 초과를 사용했습니다. 따라서 페이지가 모든 요소를 로드할 때까지 기다립니다.
그런 다음 로케이터 xpath, 사용자 이름 및 암호 텍스트 상자를 사용하여 식별하고 sendKeys() 메서드를 사용하여 값을 전달합니다.
(xpaths에 대한 자세한 내용은 여기: https://www.guru99.com/xpath-selenium.html ).
(여기에 sendKeys 정보: https://www.guru99.com/accessing-forms-in-webdriver.html )
WebElement tweet = driver.findElement(By.xpath("/html/body/div/div/div/div[2]/main/div/div/div/div/div/div[2]/div/div[2]/div[1]/div/div/div/div[2]/div[1]/div/div/div/div/div/div/div/div/div/div[1]/div/div/div/div[2]/div/div/div/div")); // find the tweeting text box
tweet.sendKeys("#100DaysOfCode #codeNewbies"); //type auto #100DaysOfCode #codeNewbies
driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
마지막으로 트윗을 위한 웹 요소 텍스트 상자를 식별하고 #100DaysOfCode #codeNewbies를 전달합니다.
개선의 여지가 많고 이 특정 트위터 사례는 더 확장될 수 있습니다. 아이디어는 있지만 작업해야 합니다.
미래 범위
git 허브에서 내 로그 정보를 가져와 내 트윗에 직접 넣습니다. 이 경우 대부분 git 허브 로그에서와 동일한 업데이트를 트윗합니다.
이것은 dev.to에 대한 첫 번째 기술 게시물입니다. 개선할 수 있도록 도와주세요.
나는 모든 피드백, 건설적인 비판을 환영합니다.
피드백을 자유롭게 제공하십시오
감사!
Reference
이 문제에 관하여(셀레늄을 사용하여 트윗 자동화), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/divinashun/automate-tweeting-using-selenium-3hj7텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)