MCPcopy Create free account
hub / github.com/SeleniumHQ/selenium / sendKeys

Function sendKeys

cpp/webdriver-interactions/interactions_linux.cpp:583–617  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

581extern "C"
582{
583void sendKeys(WINDOW_HANDLE windowHandle, const wchar_t* value, int requestedTimePerKey)
584{
585 init_logging();
586 int timePerKey = getTimePerKey(requestedTimePerKey);
587
588 LOG(DEBUG) << "---------- starting sendKeys: " << windowHandle << " tpk: " <<
589 timePerKey << "---------";
590 GdkDrawable* hwnd = (GdkDrawable*) windowHandle;
591
592 // The keyp_handler will remember the state of modifier keys and
593 // will be used to generate the events themselves.
594 KeypressEventsHandler keyp_handler(hwnd, gModifiersState);
595
596 struct timespec sleep_time;
597 sleep_time.tv_sec = timePerKey / 1000;
598 sleep_time.tv_nsec = (timePerKey % 1000) * 1000000;
599 LOG(DEBUG) << "Sleep time is " << sleep_time.tv_sec << " seconds and " <<
600 sleep_time.tv_nsec << " nanoseconds.";
601
602 int i = 0;
603 while (value[i] != '\0') {
604 list<GdkEvent*> events_for_key =
605 keyp_handler.CreateEventsForKey(value[i]);
606
607 submit_and_free_events_list(events_for_key, timePerKey);
608
609 i++;
610 }
611
612 updateLastEventTime(keyp_handler.get_last_event_time());
613 gModifiersState = keyp_handler.getModifierKeysState();
614
615 LOG(DEBUG) << "---------- Ending sendKeys. Total keys: " << i
616 << " ----------";
617}
618
619void releaseModifierKeys(WINDOW_HANDLE windowHandle, int requestedTimePerKey)
620{

Callers

nothing calls this directly

Calls 8

init_loggingFunction · 0.85
getTimePerKeyFunction · 0.85
updateLastEventTimeFunction · 0.85
CreateEventsForKeyMethod · 0.80
getModifierKeysStateMethod · 0.80
LOGClass · 0.70
get_last_event_timeMethod · 0.45

Tested by

no test coverage detected