Выполнение кода введите без выполнения команды, чтобы нажать - PullRequest
0 голосов
/ 07 октября 2018

Не уверен, что я сделал неправильно, но когда я запускаю код, он запускается так, как я хочу, но когда вводится текст из текстового файла, он выполняет ввод нажатием

import os
from time import sleep
from selenium import webdriver

chrome_path = (r"C:\Users\George\Desktop\case script\romowa\Drivers\chromedriver.exe")
text_file1 = open(r"C:\Users\George\Desktop\case script\romowa\acounts\name.txt", "r")
x = 0 #count up
a=0

while True:
    browser = webdriver.Chrome(chrome_path)
    browser.implicitly_wait(30)
    browser.get('http://www.google.com')
    x = x+1
    name = text_file1.readlines(x)
    browser.find_element_by_name("q").send_keys(name)
    sleep(1)
    browser.quit()
    a = a +1
    sleep(1)

1 Ответ

0 голосов
/ 11 октября 2018

Я пробовал с привязками C # для браузера Chrome:

  1. Следующий фрагмент кода просто установит значение в поле поиска

    IWebElement searchInput = webDriver.FindElement(By.Name("q"));
    searchInput.SendKeys("Hello");
    
  2. Следующий фрагмент кода установит значение в поле поиска и также выполнит поиск

    IWebElement searchInput = webDriver.FindElement(By.Name("q"));
    searchInput.SendKeys($"Hello {Environment.NewLine}");
    

    Обратите внимание на Environment.NewLine в приведенном выше коде, который эквивалентен \ n.

Из документации по Python для readline ()

f.readline () читает одну строку из файла;символ новой строки (\ n) остается в конце строки и пропускается только в последней строке файла, если файл не заканчивается новой строкой.Это делает возвращаемое значение однозначным;если f.readline () возвращает пустую строку, конец файла достигнут, в то время как пустая строка представляется как \ n, строка, содержащая только одну новую строку.

Для readlines ()

readlines () читает до EOF с использованием readline () и возвращает список, содержащий строки

Это ясно задокументировано, чтосимвол новой строки \ n остается в конце строки.В результате этого, когда sendkeys пытается написать строку, это также приведет к отправке \ n, имитирующей поиск.

Я бы попросил вас попробовать следующее и посмотреть результаты:

  1. жестко закодированное значение

    name = "Hello"
    browser.find_element_by_name("q").send_keys(name)
    
  2. одна строка из файла с использованием readline () вместо readlines ().Убедитесь, что вы создали новый файл, в котором вы набираете «Hello» и сохраняете его, не нажимая клавишу ввода, чтобы добавить новую строку.

    name = text_file1.readline(x)
    browser.find_element_by_name("q").send_keys(name)
    

Это должно очистить вещи.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...