Thursday, June 11, 2020

Extracting information from a dynamic webpage with RSelenium - II(corrected)


From the experience of working with RSelenium for extracting information for the last two cases and case-1, the workflow for extracting information for all cases is:
(i) Create a text file of codes for identifying cases from the MOHS webpage.
(ii) Read-in the text file into R.
(iii) Create a vector of values for xpath locators using the imported case codes of (ii)
(iv) Create a list object into which the case information will be appended.
(v) Access the information for case-151 and 150 and append them first into the list.
(vi) Loop through all cases except case-151 and 150, and extract their information and populate the list of (iv), and it is done.

Create a text file of codes for cases

The page source of COVID-19 Contact Tracing and Reporting webpage is viewed with the Chrome browser and saved to disk. This file is opened with Notepad++ and column of codes was extracted and saved into a csv file with one column and column name = “ccode”.

Create a vector of values for xpath locators

From my last post, the syntax for the location of case-1 was:
case_1 <- rD$findElement(using = 'xpath', "//*[@value = '528']")
So the value for xpath locater could be created as:
# read file
xcc <- read.csv("caseCode.txt",encoding = "UTF-8")
# create vector
xps <- list("//*[@value = '", xcc$ccode, "']")
tmp0 <- do.call(paste0, xps)
# to exclude case-151 and 150
tmp <- tmp0[-(1:2)]
Then I went on to extract the information for the reported Covid-19 confirmed cases. But however much I tried, I couldn’t get info for case-7. After a lot of frustrations, I found that the list of codes for cases I constructed out from the inspection of webpage source included a “>” character I failed to remove! See item [134] below:
[130] "//*[@value = '4474']"  "//*[@value = '247']"   "//*[@value = '5881']" 
[133] "//*[@value = '4949']"  "//*[@value = '474>']"  "//*[@value = '8381']" 
[136] "//*[@value = '4655']"  "//*[@value = '6229']"  "//*[@value = '817']"  
[139] "//*[@value = '5037']"  "//*[@value = '528']"  
It was corrected:
# read file
xcc <- read.csv("caseCode.txt",encoding = "UTF-8")
# create vector
xps <- list("//*[@value = '", xcc$ccode, "']")
tmp0 <- do.call(paste0, xps)
tmp <- tmp0[-(1:2)]
tmp[c(1:10,131:140)]
 [1] "//*[@value = '10131']" "//*[@value = '10130']" "//*[@value = '10129']"
 [4] "//*[@value = '10128']" "//*[@value = '10122']" "//*[@value = '10120']"
 [7] "//*[@value = '10114']" "//*[@value = '10113']" "//*[@value = '10112']"
[10] "//*[@value = '10110']" "//*[@value = '247']"   "//*[@value = '5881']" 
[13] "//*[@value = '4949']"  "//*[@value = '474']"   "//*[@value = '8381']" 
[16] "//*[@value = '4655']"  "//*[@value = '6229']"  "//*[@value = '817']"  
[19] "//*[@value = '5037']"  "//*[@value = '528']"  

Retrieve information on case-151 and 150 and populate the list

#  docker run -d -p 4445:4444 selenium/standalone-chrome
# Load the Library
library(RSelenium)
# start the server and browser(you can use other browsers here)
rD <- remoteDriver(remoteServerAddr = "localhost",
                      port = 4445L,
                      browserName = "chrome")
rD$open()
[1] "Connecting to remote server"
$acceptInsecureCerts
[1] FALSE

$browserName
[1] "chrome"

$browserVersion
[1] "81.0.4044.138"

$chrome
$chrome$chromedriverVersion
[1] "81.0.4044.138 (8c6c7ba89cc9453625af54f11fd83179e23450fa-refs/branch-heads/4044@{#999})"

$chrome$userDataDir
[1] "/tmp/.com.google.Chrome.A4ou0H"


$`goog:chromeOptions`
$`goog:chromeOptions`$debuggerAddress
[1] "localhost:37115"


$networkConnectionEnabled
[1] FALSE

$pageLoadStrategy
[1] "normal"

$platformName
[1] "linux"

$proxy
named list()

$setWindowRect
[1] TRUE

$strictFileInteractability
[1] FALSE

$timeouts
$timeouts$implicit
[1] 0

$timeouts$pageLoad
[1] 300000

$timeouts$script
[1] 30000


$unhandledPromptBehavior
[1] "dismiss and notify"

$`webauthn:virtualAuthenticators`
[1] TRUE

$webdriver.remote.sessionid
[1] "156cb2e11b18b98a044b922b81f8ac2a"

$id
[1] "156cb2e11b18b98a044b922b81f8ac2a"
# navigate to URL for MOHS contact tracing and reporting
rD$navigate("https://mohs.gov.mm/page/8509")
An empty list for storing the information on cases is created and populated first with the last two cases.
cseTexts.a <- c()

cse151.a <- rD$findElement(using="css selector", ".nav-tabs > li:nth-child(1) > a:nth-child(1)")
cse151.a$clickElement()
t151.a <- rD$findElement(using="css selector", "#Post_10137")
cseTexts.a <- append(cseTexts.a,t151.a$getElementText())
#cat(cseTexts.a[[1]])

cse150.a <- rD$findElement(using="css selector", ".nav-tabs > li:nth-child(2) > a:nth-child(1)")
cse150.a$clickElement()
t150.a <- rD$findElement(using="css selector", "#Post_10135")
cseTexts.a <- append(cseTexts.a,t150.a$getElementText())
#cat(cseTexts.a[[2]])

Retrieving information for all cases except for case-151 and 150

To try retrieving information for other cases, I have to locate the “View More” tab, and click on it to open the select case dropdown list.
# find element view more
csey.1 <- rD$findElement(using="css selector", "#recentcase li:nth-child(3) a")
rD$screenshot(display = TRUE)
# click view more and "select the case box" is opened
csey.1$clickElement()
rD$screenshot(display = TRUE)
# after clicking  view more  find "#select2-slcase-container"
cseM.1 <- rD$findElement(using="css selector","#select2-slcase-container") 
cseM.1$clickElement()      # need to click caseM to open
Even with increase in sys.sleep I still get duplicates and missed cases! Seems I still need to give more time for Sys.sleep() somewhere. And for reruns, it would be wise to run the cases in parts (here part-b and c with 70 cases each).
Sys.sleep(2)
cseEle2 <- list()
N <- length(tmp)
system.time({
for (i in 1:N) {
    cseEle2[[i]] <- rD$findElements(using = 'xpath', tmp[i])
    Sys.sleep(1)
}
})
   user  system elapsed 
   1.75    0.04  144.81 
Sys.sleep(2)
cseEle2.u <- unlist(cseEle2)
Sys.sleep(2)
Part-b:
Sys.sleep(2)
cseTexts.b <- c()
cseEle2.ub <- cseEle2.u[1:70]
system.time({
for(cse2b in cseEle2.ub){
  cse2b
  Sys.sleep(1)
  cse2b$clickElement()
  t2b <- rD$findElement(using = 'css selector', "#OtherCase_Info")
  Sys.sleep(1)
  t2b$clickElement()
  cseTexts.b <- append(cseTexts.b,t2b$getElementText()[[1]])
  Sys.sleep(2)
}
})
   user  system elapsed 
   1.94    0.02  289.53 
length(cseTexts.b)
[1] 70
utf8::utf8_print(unlist(cseTexts.b))
 [1] "C - 149 ဓာတ်ခွဲအတည်ပြုလူနာ\nအသက် - (၁၅) နှစ်၊ ကျား\nနေရပ်လိပ်စာ - တောင်ဉက္ကလာပမြို့နယ်၊…"
 [2] "C - 148 ဓာတ်ခွဲအတည်ပြုလူနာ\nအသက် - (၁၉) နှစ်၊ ကျား\nနေရပ်လိပ်စာ - တောင်ဉက္ကလာပမြို့နယ်၊…"
 [3] "C - 147 ဓာတ်ခွဲအတည်ပြုလူနာ\nအသက် - (၄၃) နှစ်၊ ကျား\nနေရပ်လိပ်စာ - တာမွေမြို့နယ်၊ ရန်ကုန်တို…"
 [4] "C - 146 ဓာတ်ခွဲအတည်ပြုလူနာ\nအသက် - (၃၂) နှစ်၊ ကျား (C-139 ၏ အတူနေမိသားစုဝင်)\nနေရပ်…"
 [5] "C - 145 ဓာတ်ခွဲအတည်ပြုလူနာ\nအသက် - (၄၈) နှစ်၊ ကျား\nလက်ရှိနေရပ်လိပ်စာ - စစ်ကိုင်းမြို့နယ်၊ စ…"
 [6] "C - 144 ဓာတ်ခွဲအတည်ပြုလူနာ\nအသက် - (၂၄) နှစ်၊ ကျား\nနေရပ်လိပ်စာ -မိုးညှင်းမြို့နယ်၊ ကချင်…" 
 [7] "C - 143 ဓာတ်ခွဲအတည်ပြုလူနာ\nအသက် - (၈၇) နှစ်၊ မ\nနေရပ်လိပ်စာ -မူဆယ်မြို့၊ ရှမ်းပြည်နယ်မြော…"
 [8] "C - 142 ဓာတ်ခွဲအတည်ပြုလူနာ\nအသက် - (၃၅) နှစ်၊ ကျား\nနေရပ်လိပ်စာ - ဒဂုံမြို့သစ်အရှေ့ပိုင်း၊ ရ…"
 [9] "C - 141 ဓာတ်ခွဲအတည်ပြုလူနာ\nအသက် - (၂၈) နှစ်၊ ကျား\nနေရပ်လိပ်စာ -အင်းစိန်မြို့နယ်၊ ရန်ကုန်တို…"
[10] "C - 140 ဓာတ်ခွဲအတည်ပြုလူနာ\nအသက် - (၃၉) နှစ်၊ မ\nနေရပ်လိပ်စာ - လှိုင်မြို့နယ်၊ ရန်ကုန်တိုင်းဒေသ…"
[11] "C - 139 ဓာတ်ခွဲအတည်ပြုလူနာ\nအသက် - (၂၆) နှစ်၊ မ\nနေရပ်လိပ်စာ - ကမာရွတ်မြို့နယ်၊ ရန်ကုန်တိုင်း…"
[12] "C - 138 ဓာတ်ခွဲအတည်ပြုလူနာ\nအသက် - (၅၃) နှစ်၊ ကျား\nနေရပ်လိပ်စာ - ဒဂုံမြို့နယ်၊ ရန်ကုန်တိုင်း…"
[13] "C - 137 ဓာတ်ခွဲအတည်ပြုလူနာ\nအသက် - (၃၁) နှစ်၊ မ\nနေရပ်လိပ်စာ - လှိုင်မြို့နယ်၊ ရန်ကုန်တိုင်းဒေသ…"
[14] "C - 136 ဓာတ်ခွဲအတည်ပြုလူနာ\nအသက် - (၂၅) နှစ်၊ ကျား\nနေရပ်လိပ်စာ - ကျောက်တံတားမြို့နယ်၊ …"
[15] "C - 135 ဓာတ်ခွဲအတည်ပြုလူနာ\nအသက် - (၃၅) နှစ်၊ မ\nနေရပ်လိပ်စာ - ကျောက်တံတားမြို့နယ်၊ ရန်ကု…"
[16] "C - 134 ဓာတ်ခွဲအတည်ပြုလူနာ\nအသက် - (၃၅) နှစ်၊ ကျား\nနေရပ်လိပ်စာ - တာမွေမြို့နယ်၊ ရန်ကုန်တို…"
[17] "C - 133 ဓာတ်ခွဲအတည်ပြုလူနာ\nအသက် - (၄၅) နှစ်၊ ကျား\nနေရပ်လိပ်စာ - ပန်းပဲတန်းမြို့နယ်၊ ရန်…"
[18] "C - 132 ဓာတ်ခွဲအတည်ပြုလူနာ\nအသက် - (၈၀) နှစ်၊ ကျား\nနေရပ်လိပ်စာ -   မတ္တရာမြို့နယ်၊ မန္…"
[19] "C - 131 ဓာတ်ခွဲအတည်ပြုလူနာ\nအသက် - (၂၈) နှစ်၊ မ\nနေရပ်လိပ်စာ -   မရမ်းကုန်းမြို့နယ်၊ ရန်ကု…"
[20] "C - 130 ဓာတ်ခွဲအတည်ပြုလူနာ\nအသက် - (၆၅) နှစ်၊ မ (C-94 ၏ အတူနေမိသားစုဝင်)\nနေရပ်လိပ်စာ…"
[21] "C - 129 ဓာတ်ခွဲအတည်ပြုလူနာ\nအသက် - (၃၁) နှစ်၊ မ\nနေရပ်လိပ်စာ -    သာကေတမြို့နယ်၊ ရန်ကုန်…"
[22] "C - 128 ဓာတ်ခွဲအတည်ပြုလူနာ\nအသက် - (၅၄) နှစ်၊ ကျား\nနေရပ်လိပ်စာ - တောင်ဥက္ကလာပမြို့နယ်၊…"
[23] "C - 127 ဓာတ်ခွဲအတည်ပြုလူနာ\nအသက် - (၂၄) နှစ်၊ မ\nနေရပ်လိပ်စာ -   အင်းစိန်မြို့နယ်၊ ရန်ကုန်တို…"
[24] "C - 126 ဓာတ်ခွဲအတည်ပြုလူနာ\nအသက် - ( ၄၇ ) နှစ်၊ ကျား\nနေရပ်လိပ်စာ - တာမွေမြို့နယ်၊ ရန်ကု…"
[25] "C - 125 ဓာတ်ခွဲအတည်ပြုလူနာ\nအသက် - ( ၁၈ ) နှစ်၊ ကျား\nနေရပ်လိပ်စာ -     ဗိုလ်တစ်ထောင်…" 
[26] "C - 124 ဓာတ်ခွဲအတည်ပြုလူနာ\nအသက် - (၄၅) နှစ် ၊ ကျား (C-089 ၏ ယာဉ်မောင်း)\nနေရပ်လိပ်…"
[27] "C - 123 ဓာတ်ခွဲအတည်ပြုလူနာ\nအသက် - (၁၈) နှစ်၊ မ\nနေရပ်လိပ်စာ -အင်းစိန်မြို့နယ်၊ ရန်ကုန်တိုင်း…" 
[28] "C - 122 ဓာတ်ခွဲအတည်ပြုလူနာ\nအသက် - (၂၈) နှစ်၊ ကျား\nနေရပ်လိပ်စာ - သာကေတမြို့နယ်၊ ရန်ကုန်…"
[29] "C - 121 ဓာတ်ခွဲအတည်ပြုလူနာ\nအသက် - (၂၁) နှစ်၊ မ\nနေရပ်လိပ်စာ - တောင်ကြီးမြို့၊ ရှမ်းပြည်န…"
[30] "C - 120 ဓာတ်ခွဲအတည်ပြုလူနာ\nအသက် - (၂၁) နှစ်၊ မ\nနေရပ်လိပ်စာ - ဒဂုံမြို့သစ် (အရှေ့)၊ ရန်ကုန်…"
[31] "C - 119 ဓာတ်ခွဲအတည်ပြုလူနာ\nအသက် - (၃၁) နှစ်၊ မ\nနေရပ်လိပ်စာ - ပြည်မြို့၊ ပဲခူးတိုင်းဒေသကြီ…"
[32] "C - 118 ဓာတ်ခွဲအတည်ပြုလူနာ\nအသက် - (၃၁) နှစ်၊ မ\nနေရပ်လိပ်စာ - ပြည်မြို့၊ ပဲခူးတိုင်းဒေသကြီ…"
[33] "C - 117 ဓာတ်ခွဲအတည်ပြုလူနာ\nအသက် - ( ၁၀) နှစ်၊ မ (C-88 ၏ သမီး)\nနေရပ်လိပ်စာ - ကလေး…"
[34] "C - 116 ဓာတ်ခွဲအတည်ပြုလူနာ\nအသက် - ( ၁၇) နှစ်၊ ကျား (C-88 ၏ သား)\nနေရပ်လိပ်စာ - က…"
[35] "C - 115 ဓာတ်ခွဲအတည်ပြုလူနာ\nအသက် - ( ၁၉) နှစ်၊ ကျား (C-88 ၏ သား)\nနေရပ်လိပ်စာ - က…"
[36] "C - 114 ဓာတ်ခွဲအတည်ပြုလူနာ\nအသက် - ( ၅၂) နှစ်၊ ကျား (C-88 ၏ ခင်ပွန်း)\nနေရပ်လိပ်စာ -…"
[37] "C - 113 ဓာတ်ခွဲအတည်ပြုလူနာ\nအသက် - (၆၅) နှစ်၊ မ (C-78 ၏ဇနီး)\nနေရပ်လိပ်စာ - တီးတိန်မြို့…"
[38] "C - 112 ဓာတ်ခွဲအတည်ပြုလူနာ\nအသက် - (၂၉) နှစ်၊ ကျား\nနေရပ်လိပ်စာ - တာချီလိတ်မြို့နယ်၊ ရှမ်း…"
[39] "C - 111 ဓာတ်ခွဲအတည်ပြုလူနာ\nအသက် - (၅၉) နှစ်၊ မ\nနေရပ်လိပ်စာ - လှိုင်သာယာမြို့နယ်၊ ရန်ကုန်တိုင်…"
[40] "C - 110 ဓာတ်ခွဲအတည်ပြုလူနာ\nအသက် - (၆၃) နှစ်၊ ကျား\nနေရပ်လိပ်စာ - ဗိုလ်တစ်ထောင်မြို့နယ်၊ ရ…"
[41] "C - 109 ဓာတ်ခွဲအတည်ပြုလူနာ\nအသက် - (၃၇) နှစ်၊ ကျား\nနေရပ်လိပ်စာ - သင်္ကန်းကျွန်းမြို့နယ်၊ …"
[42] "C - 108 ဓာတ်ခွဲအတည်ပြုလူနာ\nအသက် - (၈၅) နှစ်၊ မ (C-105 ၏မိခင်)\nနေရပ်လိပ်စာ - မရမ်းကု…"
[43] "C - 107 ဓာတ်ခွဲအတည်ပြုလူနာ\nအသက် - (၅၄) နှစ်၊ မ (Case-101 ၏ဇနီး)\nနေရပ်လိပ်စာ - ဒဂု…"
[44] "C - 106 ဓာတ်ခွဲအတည်ပြုလူနာ\nအသက် - (၂၆) နှစ်၊ ကျား\nနေရပ်လိပ်စာ - ဗိုလ်တထောင်မြို့နယ်၊ ရန်…"
[45] "C - 105 ဓာတ်ခွဲအတည်ပြုလူနာ\nအသက် - (၄၄) နှစ်၊ မ (C-86 ၏ဇနီး)\nနေရပ်လိပ်စာ - မရမ်းကုန်…"
[46] "C - 104 ဓာတ်ခွဲအတည်ပြုလူနာ\nအသက် - (၃၅) နှစ်၊ မ\nနေရပ်လိပ်စာ - ကမာရွတ်မြို့နယ်၊ ရန်ကုန်တိုင်း…"
[47] "C - 103 ဓာတ်ခွဲအတည်ပြုလူနာ\nအသက် - (၃၁) နှစ်၊ ကျား\nနေရပ်လိပ်စာ - မရမ်းကုန်းမြို့နယ်၊ ရန်…"
[48] "C - 102 ဓာတ်ခွဲအတည်ပြုလူနာ\nအသက် - (၄၂) နှစ်၊ ကျား\nနေရပ်လိပ်စာ - တောင်ဉက္ကလာပမြို့နယ်၊…"
[49] "C - 101 ဓာတ်ခွဲအတည်ပြုလူနာ\nအသက် - (၆၀) နှစ်၊ ကျား (Case-107 ၏ခင်ပွန်း)\nနေရပ်လိပ်စာ…"
[50] "C - 100 ဓာတ်ခွဲအတည်ပြုလူနာ\nအသက် - (၄၄) နှစ်၊ ကျား\nနေရပ်လိပ်စာ - ဒေါပုံမြို့နယ်၊ ရန်ကုန်တို…"
[51] "C - 99 ဓာတ်ခွဲအတည်ပြုလူနာ\nအသက် - (၃၈) နှစ်၊ ကျား\nနေရပ်လိပ်စာ - ဒေါပုံမြို့နယ်၊ ရန်ကုန်တိုင်…"
[52] "C - 98 ဓာတ်ခွဲအတည်ပြုလူနာ\nအသက် - (၂၀) နှစ်၊  မ\nနေရပ်လိပ်စာ - မရမ်းကုန်းမြို့နယ်၊ ရန်ကုန်တို…"
[53] "C - 97 ဓာတ်ခွဲအတည်ပြုလူနာ\nအသက် - (၄၃) နှစ်၊ မ\nနေရပ်လိပ်စာ - မင်္ဂလာဒုံမြို့နယ်၊ ရန်ကုန်တိုင်း…"
[54] "C - 96 ဓာတ်ခွဲအတည်ပြုလူနာ\nအသက် - (၄၃) နှစ်၊ ကျား\nနေရပ်လိပ်စာ - တာချီလိတ်မြို့နယ်၊ ရှမ်း…" 
[55] "C - 95 ဓာတ်ခွဲအတည်ပြုလူနာ\nအသက် - (၁)နှစ် (၆)လ၊ ကျား\nနေရပ်လိပ်စာ - ပန်းဘဲတန်းမြို့နယ်၊ …"
[56] "C - 94 ဓာတ်ခွဲအတည်ပြုလူနာ\nအသက် - (၃၉) နှစ်၊ ကျား\nနေရပ်လိပ်စာ - အင်းစိန်မြို့နယ်၊ ရန်ကုန်တို…"
[57] "C - 93 ဓာတ်ခွဲအတည်ပြုလူနာ\nအသက် - (၃၆) နှစ်၊ ကျား\nနေရပ်လိပ်စာ - အင်းစိန်မြို့နယ်၊ ရန်ကုန်တို…"
[58] "C - 92 ဓာတ်ခွဲအတည်ပြုလူနာ\nအသက် - (၂၄) နှစ်၊ ကျား\nနေရပ်လိပ်စာ -စမ်းချောင်းမြို့နယ်၊ ရန်…"
[59] "C - 91 ဓာတ်ခွဲအတည်ပြုလူနာ\nအသက် - (၆၀) နှစ်၊ ကျား (C-47, C-89, C-90 ၏ မိသားစုဝင်)…"
[60] "C - 90 ဓာတ်ခွဲအတည်ပြုလူနာ\nအသက် - (၅၇) နှစ်၊ မ (C-47, C-89, C-91 ၏ မိသားစုဝင်)\n…" 
[61] "C - 89 ဓာတ်ခွဲအတည်ပြုလူနာ\nအသက် - (၅၀) နှစ်၊ ကျား (C-47 ၏ ခင်ပွန်း)\nနေရပ်လိပ်စာ - …" 
[62] "C - 88 ဓာတ်ခွဲအတည်ပြုလူနာ\nအသက် - (၄၇) နှစ်၊ မ\nနေရပ်လိပ်စာ - ကလေးမြို့၊ စစ်ကိုင်းတိုင်းဒေသ…"
[63] "C - 87 ဓာတ်ခွဲအတည်ပြုလူနာ\nအသက် - (၆၂) နှစ်၊ ကျား\nနေရပ်လိပ်စာ - တာမွေမြို့နယ်၊ ရန်ကုန်တိုင်…"
[64] "C - 86 ဓာတ်ခွဲအတည်ပြုလူနာ\nအသက် - (၇၈) နှစ်၊ ကျား (C-105 ၏ ခင်ပွန်း)\nနေရပ်လိပ်စာ - …"
[65] "C - 85 ဓာတ်ခွဲအတည်ပြုလူနာ\nအသက် - (77) နှစ်၊ ကျား\nနေရပ်လိပ်စာ - တောင်ဒဂုံမြို့နယ်၊ ရန်ကုန်…"
[66] "C - 84 ဓာတ်ခွဲအတည်ပြုလူနာ\nအသက် - (၄၀) နှစ်၊ ကျား\nနေရပ်လိပ်စာ - အင်းစိန်မြို့နယ်၊ ရန်ကုန်တို…"
[67] "C - 83 ဓာတ်ခွဲအတည်ပြုလူနာ\nအသက် - (၆၃) နှစ်၊ ကျား\nနေရပ်လိပ်စာ - ပုဇွန်တောင်မြို့နယ်၊ ရန်ကု…"
[68] "C - 82 ဓာတ်ခွဲအတည်ပြုလူနာ\nအသက် - (၃၈) နှစ်၊ မ\nနေရပ်လိပ်စာ - အောင်မြေသာစံမြို့နယ်၊ မန္တ…"
[69] "C - 81 ဓာတ်ခွဲအတည်ပြုလူနာ\nအသက် - (၂၈)နှစ်၊ မ\nနေရပ်လိပ်စာ - လှိုင်သာယာမြို့နယ်၊ ရန်ကုန်တိုင်း…" 
[70] "C - 80 ဓာတ်ခွဲအတည်ပြုလူနာ\nအသက် - (၂၈) နှစ်၊ ကျား\nနေရပ်လိပ်စာ - လှိုင်သာယာမြို့နယ်၊ ရန်ကုန်…"
Part-c:
Sys.sleep(2)
cseTexts.c <- c()
cseEle2.uc <- cseEle2.u[71:140]
system.time({
for(cse2c in cseEle2.uc){
  cse2c
  Sys.sleep(1)
  cse2c$clickElement()
  t2c <- rD$findElement(using = 'css selector', "#OtherCase_Info")
  Sys.sleep(2)
  t2c$clickElement()
  cseTexts.c <- append(cseTexts.c,t2c$getElementText()[[1]])
  Sys.sleep(2)
}
})
   user  system elapsed 
   1.84    0.00  359.07 
length(cseTexts.c)
[1] 70
utf8::utf8_print(unlist(cseTexts.c))
 [1] "C - 79 ဓာတ်ခွဲအတည်ပြုလူနာ\nအသက် - (၄၃) နှစ်၊ ကျား\nနေရပ်လိပ်စာ - ဗဟန်းမြို့နယ်၊ ရန်ကုန်တိုင်…"
 [2] "C - 78 ဓာတ်ခွဲအတည်ပြုလူနာ\nအသက် - (၆၉) နှစ်၊ ကျား\nနေရပ်လိပ်စာ - တီးတိန်မြို့နယ်၊ ချင်းပြ…"
 [3] "C - 77 ဓာတ်ခွဲအတည်ပြုလူနာ\nအသက် - (၃၃) နှစ်၊ မ\nနေရပ်လိပ်စာ - စမ်းချောင်းမြို့နယ်၊ ရန်ကုန်…"
 [4] "C - 76 ဓာတ်ခွဲအတည်ပြုလူနာ\nအသက် - (၂၀) နှစ်၊ ကျား\nနေရပ်လိပ်စာ -အလုံမြို့နယ်၊ ရန်ကုန်တိုင်းဒေ…"
 [5] "C - 75 ဓာတ်ခွဲအတည်ပြုလူနာ\nအသက် - (၃၅) နှစ်၊ မ\nနေရပ်လိပ်စာ - မြောက်ဥက္ကလာပမြို့နယ်၊ ရန်…"
 [6] "C - 74 ဓာတ်ခွဲအတည်ပြုလူနာ\nအသက် - (၆၃) နှစ်၊ မ\nနေရပ်လိပ်စာ - ကလေးမြို့နယ်၊ စစ်ကိုင်းတိုင်း…" 
 [7] "C - 73 ဓာတ်ခွဲအတည်ပြုလူနာ\nအသက် - (၂၉) နှစ်၊ မ\nနေရပ်လိပ်စာ - အင်းစိန်မြို့နယ်၊ ရန်ကုန်တိုင်း…" 
 [8] "C - 72 ဓာတ်ခွဲအတည်ပြုလူနာ\nအသက် - (၂၇) နှစ်၊ မ\nနေရပ်လိပ်စာ - အင်းစိန်မြို့နယ်၊ ရန်ကုန်တိုင်း…" 
 [9] "C - 71 ဓာတ်ခွဲအတည်ပြုလူနာ\nအသက် - (၃၂) နှစ်၊ မ\nနေရပ်လိပ်စာ - ဗဟန်းမြို့နယ်၊ ရန်ကုန်တိုင်းဒေ…"
[10] "C - 69, 70 ဓာတ်ခွဲအတည်ပြုလူနာများ\nC- 69 - အသက် - (၃၄) နှစ်၊ ကျား\nC- 70 - အသက်…"
[11] "C - 65, 66, 67, 68 ဓာတ်ခွဲအတည်ပြုလူနာများ\nC-65 - အသက် - (၅၇) နှစ်၊ မ\nC-66 - …"
[12] "C - 64 ဓာတ်ခွဲအတည်ပြုလူနာ\nအသက် - (၂၃) နှစ်၊ ကျား\nနေရပ်လိပ်စာ - မိုင်းဖြတ်မြို့နယ်၊ ရှမ်း…" 
[13] "C - 63 ဓာတ်ခွဲအတည်ပြုလူနာ\nအသက် - (၆၅) နှစ်၊ ကျား\nနေရပ်လိပ်စာ - လှိုင်သာယာမြို့နယ်၊ ရန်ကုန်…"
[14] "C - 62 ဓာတ်ခွဲအတည်ပြုလူနာ\nအသက် - (၃၀) နှစ်၊ မ\nနေရပ်လိပ်စာ - မရမ်းကုန်းမြို့နယ်၊ ရန်ကုန်တိုင်…"
[15] "C - 61 ဓာတ်ခွဲအတည်ပြုလူနာ\nအသက်- (၃၈) နှစ်၊ ကျား\nနေရပ်လိပ်စာ - အင်းစိန်မြို့နယ်\nCOVID-…"
[16] "C - 60 ဓာတ်ခွဲအတည်ပြုလူနာ\nအသက်- (၃၉) နှစ်၊ ကျား\nနေရပ်လိပ်စာ - ရွှေပြည်သာမြို့နယ်\nCOVI…"
[17] "C - 59 ဓာတ်ခွဲအတည်ပြုလူနာ\nအသက်- (၂၃) နှစ်၊ မ\nနေရပ်လိပ်စာ - အင်းစိန်မြို့နယ်\nCOVID-19 …"
[18] "C - 58 ဓာတ်ခွဲအတည်ပြုလူနာ\nအသက်- (၄၆) နှစ်၊ မ\nနေရပ်လိပ်စာ - အင်းစိန်မြို့နယ်\nတက်ရောက်ကုသသ…"
[19] "C - 57 ဓာတ်ခွဲအတည်ပြုလူနာ\nအသက်- (၃၉) နှစ်၊ မ\nနေရပ်လိပ်စာ - အင်းစိန်မြို့နယ်\nCOVID-19 …"
[20] "C - 56 ဓာတ်ခွဲအတည်ပြုလူနာ\nအသက်- (၃၃) နှစ်၊ မ\nနေရပ်လိပ်စာ - အင်းစိန်မြို့နယ်၊ ရန်ကုန်တိုင်းဒေ…"
[21] "C - 55 ဓာတ်ခွဲအတည်ပြုလူနာ\nအသက်- (၄၀) နှစ်၊ ကျား\nနေရပ်လိပ်စာ - အင်းစိန်မြို့နယ်၊ ရန်ကုန်တိုင်…"
[22] "C - 54 ဓာတ်ခွဲအတည်ပြုလူနာ\nအသက်- (၇) နှစ်၊ မ\nနေရပ်လိပ်စာ - အင်းစိန်\nCOVID-19 ရောဂါ…"
[23] "C - 53 ဓာတ်ခွဲအတည်ပြုလူနာ\nအသက် - (၃၁) နှစ်၊ ကျား\nနေရပ်လိပ်စာ မြို့သစ်မြို့နယ်၊ မကွေးတိုင်း…" 
[24] "C - 52 ဓာတ်ခွဲအတည်ပြုလူနာ\nအသက်- (၄၀) နှစ်၊ မ\nနေရပ်လိပ်စာ - တောင်ဥက္ကလာပမြို့နယ်\nCOVI…"
[25] "C - 51 ဓာတ်ခွဲအတည်ပြုလူနာ\nအသက်- (၄၉) နှစ်၊ ကျား\nနေရပ်လိပ်စာ - တောင်ဥက္ကလာပမြို့နယ်\nC…"
[26] "C - 50 ဓာတ်ခွဲအတည်ပြုလူနာ\nအသက်- (၄၁) နှစ်၊ ကျား\nနေရပ်လိပ်စာ - တောင်ဥက္ကလာပမြို့နယ်\nC…"
[27] "C - 49 ဓာတ်ခွဲအတည်ပြုလူနာ\nအသက်- (၃၅) နှစ်၊ ကျား\nနေရပ်လိပ်စာ - တောင်ဥက္ကလာပမြို့နယ်\nC…"
[28] "C - 48 ဓာတ်ခွဲအတည်ပြုလူနာ\nအသက်- (၃၁) နှစ်၊ မ\nနေရပ်လိပ်စာ - တောင်ဥက္ကလာပမြို့နယ်\nCOVI…"
[29] "C - 47 ဓာတ်ခွဲအတည်ပြုလူနာ\nအသက်- (၅၀) နှစ်၊ မ\nနေရပ်လိပ်စာ - တောင်ဥက္ကလာပမြို့နယ်\nCOVI…"
[30] "C - 46 ဓာတ်ခွဲအတည်ပြုလူနာ\nအသက်- (၄၄) နှစ်၊ ကျား\nနေရပ်လိပ်စာ - ဗဟန်းမြို့နယ်\nCOVID-1…"
[31] "C - 45 ဓာတ်ခွဲအတည်ပြုလူနာ\nအသက်- (၅၄) နှစ်၊ ကျား\nနေရပ်လိပ်စာ - မရမ်းကုန်းမြို့နယ်\nတက်ရေ…"
[32] "C - 44 ဓာတ်ခွဲအတည်ပြုလူနာ\nအသက် - (၃၂) နှစ်၊ မ\nနေရပ်လိပ်စာ - မရမ်းကုန်းမြို့နယ်\nတက်ရောက်…"
[33] "C - 43 ဓာတ်ခွဲအတည်ပြုလူနာ\nအသက် - (၄၁) နှစ်၊ မ\nနေရပ်လိပ်စာ - မရမ်းကုန်းမြို့နယ်\nတက်ရောက်…"
[34] "C - 42 ဓာတ်ခွဲအတည်ပြုလူနာ\nအသက်- (၄၃) နှစ်၊ မ\nနေရပ်လိပ်စာ - ဗဟန်းမြို့နယ်\nCOVID-19 …" 
[35] "C - 41 ဓာတ်ခွဲအတည်ပြုလူနာ\nအသက် - (၃၈) နှစ်၊ ကျား\nနေရပ်လိပ်စာ - အင်းစိန်မြို့နယ်၊ ရန်ကုန်တို…"
[36] "C - 40 ဓာတ်ခွဲအတည်ပြုလူနာ\nအသက် - (၆၈) နှစ်၊ မ\nနေရပ်လိပ်စာ - ဗဟန်းမြို့နယ်၊ ရန်ကုန်တိုင်းဒေ…"
[37] "C - 39 ဓာတ်ခွဲအတည်ပြုလူနာ\nအသက် - (၈၅) နှစ်၊ ကျား\nနေရပ်လိပ်စာ ပန်းဘဲတန်းမြို့နယ်၊ ရန်ကုန်တို…"
[38] "C - 38 ဓာတ်ခွဲအတည်ပြုလူနာ\nအသက် - (၇၈) နှစ်၊ ကျား\nနေရပ်လိပ်စာ - အင်းစိန်မြို့နယ်၊ ရန်ကုန်တို…"
[39] "C - 37 ဓာတ်ခွဲအတည်ပြုလူနာ\nအသက် - (၄၄) နှစ်၊ ကျား\nနေရပ်လိပ်စာ - အင်းစိန်မြို့နယ်\nတက်ရော…"
[40] "C - 36 ဓာတ်ခွဲအတည်ပြုလူနာ\nအသက် - (၃၃) နှစ်၊ ကျား\nနေရပ်လိပ်စာ - အင်းစိန်မြို့နယ်\nတက်ရော…"
[41] "C - 35 ဓာတ်ခွဲအတည်ပြုလူနာ\nအသက် - (၂၄) နှစ်၊ ကျား\nနေရပ်လိပ်စာ - အင်းစိန်မြို့နယ်\nတက်ရော…"
[42] "C - 34 ဓာတ်ခွဲအတည်ပြုလူနာ\nအသက် - (၂၀) နှစ်\nနေရပ်လိပ်စာ - အင်းစိန်မြို့နယ်\nတက်ရောက်ကုသသည့်…" 
[43] "C - 33 ဓာတ်ခွဲအတည်ပြုလူနာ\nအသက် - (၂၉) နှစ်, မ\nနေရပ်လိပ်စာ - ရွှေပြည်သာမြို့နယ်၊ ရန်ကုန်တိုင်…"
[44] "C - 32 ဓာတ်ခွဲအတည်ပြုလူနာ\nအသက် - (၃၈) နှစ်၊ ကျား\nနေရပ်လိပ်စာ - လှည်းကူးမြို့နယ်၊ ရန်ကုန်တို…"
[45] "C - 31 ဓာတ်ခွဲအတည်ပြုလူနာ\nအသက် (၄၉) နှစ်၊ တီးတိန်မြို့နယ်၊ ချင်းပြည်နယ်\nဓာတ်ခွဲအတည်ပြုသည့်ရက်စွဲ…"
[46] "C - 30 ဓာတ်ခွဲအတည်ပြုလူနာ\nအသက် (၅၈) နှစ်၊ ပြည်မြို့နယ်၊ ပဲခူးတိုင်းဒေသကြီး\nဓာတ်ခွဲအတည်ပြုသည့်ရ…"
[47] "C - 29 ဓာတ်ခွဲအတည်ပြုလူနာ\nအသက် (26) နှစ်၊ တောင်ကြီးမြို့၊ ရှမ်းပြည်နယ် (တောင်ပိုင်း)\nဓာတ်ခွဲ…"
[48] "C - 28 ဓာတ်ခွဲအတည်ပြုလူနာ\nအသက် (၆၃) နှစ်၊ ဗဟန်းမြို့နယ်၊ ရန်ကုန်တိုင်းဒေသကြီး\nဓာတ်ခွဲအတည်ပြုသ…"
[49] "C - 27 ဓာတ်ခွဲအတည်ပြုလူနာ\nအသက် (၂၄) နှစ်၊ ကျိုက်မရောမြို့နယ်၊ မွန်ပြည်နယ်\nဓာတ်ခွဲအတည်ပြုလူနာ …"
[50] "C - 26 ဓာတ်ခွဲအတည်ပြုလူနာ\nအသက် (၅၆) နှစ်၊ လှိုင်သာယာမြို့နယ်၊ ရန်ကုန်တိုင်းဒေသကြီး\nဓာတ်ခွဲအတည်…" 
[51] "C - 25 ဓာတ်ခွဲအတည်ပြုလူနာ\nအသက် (၅၅) နှစ်၊ ဗဟန်းမြို့နယ်၊ ရန်ကုန်တိုင်းဒေသကြီး\nဓာတ်ခွဲအတည်ပြုလူ…"
[52] "C - 24 ဓာတ်ခွဲအတည်ပြုလူနာ\nအသက် (၃၂) နှစ်၊ မရမ်းကုန်းမြို့နယ်၊ ရန်ကုန်တိုင်းဒေသကြီး\nရန်ကုန်တိုင်း…"
[53] "C - 23 ဓာတ်ခွဲအတည်ပြုလူနာ\nအသက် (၅၈) နှစ်၊ တီးတိန်မြို့နယ်၊ ချင်းပြည်နယ်\nဓာတ်ခွဲအတည်ပြုလူနာ C…"
[54] "C-22 ဓာတ်ခွဲအတည်ပြုလူနာ\nအဆိုပါလူနာသည် ရန်ကုန်တိုင်းဒေသကြီး၊ တောင်ဥက္ကလာပမြို့နယ်တွင် နေထိုင်သော …"
[55] "C-21 ဓာတ်ခွဲအတည်ပြုလူနာ\nအမေရိကန်နိုင်ငံ၊ နယူးယောက်မြို့မှ (၂၄-၃-၂၀၂၀)ရက်နေ့တွင် KE-082 (ခုံမှ…"
[56] "C - 17, 18, 19, 20 ဓာတ်ခွဲအတည်ပြုလူနာများ\nဓာတ်ခွဲအတည်ပြုလူနာ (C-17, C-18, C-19,C…"
[57] "C - 16 ဓာတ်ခွဲအတည်ပြုလူနာ\nအသက် (၆၃) နှစ်အရွယ် အဆိုပါလူနာသည် (၁၅-၃-၂၀၂၀) ရက်နေ့၊ ဒူဘိုင်းမှ…"
[58] "C - 15 ဓာတ်ခွဲအတည်ပြုလူနာ\nနိုင်ငံခြားသားများကို ကျန်းမာရေးဝန်ဆောင်မှုပေးသော ဆေးခန်းတစ်ခု…"
[59] "C - 14 ဓာတ်ခွဲအတည်ပြုလူနာ\nအဆိုပါလူနာသည် ထိုင်းငံတွင်နေစဉ် အန်ခြင်း၊ ဗိုက်အောင့်ခြင်း၊ များခံစာ…"
[60] "C - 11, 12, 13 ဓာတ်ခွဲအတည်ပြုလူနာများ\nအဆိုပါ ဓာတ်ခွဲအတည်ပြုလူနာများသည် ပြင်သစ်နိုင်ငံမှ မြ…"
[61] "C-10 ဓာတ်ခွဲအတည်ပြုလူနာ\nအဆိုပါလူနာသည် ရန်ကုန်တိုင်းဒေသကြီး၊ မင်္ဂလာတောင်ညွန့် မြို့နယ်တွင်နေထိုင်သော…"
[62] "C-9 ဓာတ်ခွဲအတည်ပြုလူနာ\nအဆိုပါလူနာသည် ရန်ကုန်တိုင်းဒေသကြီး၊ ပုလဲမြို့သစ်၊ သင်္ဃန်းကျွန်းကြီးတွင် နေထို…"
[63] "C-8 ဓာတ်ခွဲအတည်ပြုလူနာ\nရန်ကုန်တိုင်းဒေသကြီး၊ ဗဟန်းမြို့နယ်နေ အသက် (၆၀) နှစ်အရွယ် ဧည့်လမ်းညွှန် အ…" 
[64] "C-7 ဓာတ်ခွဲအတည်ပြုလူနာ\nအသက်(၅၈)နှစ်အရွယ် ဆွစ်ဇာလန်နိုင်ငံသူ အမျိုးသမီးသည် (၁၇-၃-၂၀၂၀) ရက်နေ့တွ…"
[65] "C-6 ဓာတ်ခွဲအတည်ပြုလူနာ\n\nအသက် (၂၉) နှစ်အရွယ် ရန်ကုန်တိုင်းဒေသကြီး၊ အင်းစိန်မြို့နယ်မှ အမျိုးသား …"
[66] "C-5 ဓာတ်ခွဲအတည်ပြုလူနာ\n\nရန်ကုန်တိုင်းဒေသကြီး၊ မင်္ဂလာတောင်ညွန့်မြို့နယ်တွင် နေထိုင်သော အသက် (၆၉)…"
[67] "C-4 ဓာတ်ခွဲအတည်ပြုလူနာ\nချမ်းမြသာစည်မြို့နယ်၊ မန္တလေးတိုင်းဒေသကြီး (ကန်တော်နဒီဆေးရုံ) - မန္တ…"
[68] "C-3 ဓာတ်ခွဲအတည်ပြုလူနာ\n\nအဆိုပါ လူနာသည် (၂၀-၃-၂၀၂၀) ရက်နေ့တွင် အင်္ဂလန်နိုင်ငံ၊ လန်ဒန်မြို့မှ ဒို…"
[69] "C-2 ဓာတ်ခွဲအတည်ပြုလူနာ\nအဆိုပါလူနာသည် (၂၂-၃-၂၀၂၀) ရက်နေ့တွင် အင်္ဂလန်နိုင်ငံ၊ လန်ဒန်မြို့မှ Emir…"
[70] "C-1 ဓာတ်ခွဲအတည်ပြုလူနာ\n  အဆိုပါလူနာသည် ၎င်း၏မိခင်နှင့်အတူ အမေရိကန်နိုင်ငံ၊ ဝါရှင်တန်မြို့မှ (၁၃-၃-…"
Selenium works with the browser and the browser needs time to complete the work requested by Selenium. If it doesn’t get enough time to get information for a case and the processing goes on to next step there will be errors. When I first run the above block of looping code, it took about five or six seconds to complete. But the problem is that I got a lot of duplicate cases. So I’ve to give time by adding system-sleep (time in seconds). Now I see that all cases are covered! I am a bit dumb as to be not able to think how and where to distribute the system sleeps. So I had to go through a lot of trials and errors. And R is interactive, so it’s great for us dummies!
Last, I need an explanation for this post. My last post has holes and errors and I thought of deleting it and posting the current one in its place. But after second thought I think it would good for myself and others to learn from my mistakes. So I am giving both versions.

No comments:

Post a Comment