2015-05-26 1 views
1

Попытка использовать простой диалог для ввода информации, но это не позволяет мне использовать fieldValue, который я использую для ввода в диалоговом окне.Python не может ввести полевое значение как строку

Сообщение об ошибке ниже:

driver.get("https://" + fieldValues + "/test/") 

TypeError: cannot concatenate 'str' and 'tuple' objects

Script ниже:

import re 
import easygui 
from pprint import pprint 
from selenium import webdriver 
from pyvirtualdisplay import Display 
from selenium.webdriver.common.keys import Keys 


msg = "Please enter the server to test...", 
title = "Local Server Tester ", 
fieldNames = ['Server URL'], 
fieldValues = [], # we start with blanks for the values 
fieldValues = easygui.multenterbox(msg,title, fieldNames), 



# Get server from fieldValues 
print ("Server to test", (fieldValues)) 


# Log into system 

driver = webdriver.Chrome() 
driver.get("https://" + fieldValues + "/test") 
+0

try ''. .join (list (fieldValues))' – farhawa

+0

Что находится внутри 'fieldValues' и что вы хотите получить? –

+0

Внутри fieldValues ​​будет все, что вводится в диалоговое окно - так, например, 'google.com' – Grimlockz

ответ

0

Измените эту строку, и она должна работать (если у вас есть только один URL, чтобы проверить)

driver.get("https://" + fieldValues[0][0]+ "/test") 

Ваш fieldvalue ищет что-то вроде this.It это кортеж, который есть список одной строки

FieldValues= (['www.yourserver.com'],) 
0

Если вы хотите добавить это tuple к новому string, вы можете создать строку из него, как:

driver.get("https://" + str(fieldValues) + "/test/") 

Вы должны убедиться, что строковое представление fieldValues ​​- это то, что вы действительно хотите, и если не писать функцию для распаковки кортежа и создания правильно отформатированной строки из ее элементов.

EDIT: учитывая ограниченный контекст, вы, вероятно, ищете что-то вроде этого, чтобы распаковать значения кортежа, разделив их, предполагая, что FieldValues ​​являются частью доменного имени «»:

driver.get("https://" + '.'.join(fieldValues) + "/test/") 
Смежные вопросы