Попробуйте этот путь.
element(By.xpath("//div[@class='col-sm-8']//input[@value='COST' and @type='radio']")).click();
Как уже указано, самый легкий путь состоит в том, чтобы использовать Поток и его методы WriteComponent и ReadComponent.
Но знайте что:
- это работает на потомков TComponent, не простой TObject;
- только для опубликованных свойств (сохраненные в dfm), не общедоступные, ни (тем более) privwte;
- необходимо обратить особое внимание для свойства Name при восстановлении компонента.
Можно найти некоторый код, который Вы могли использовать в них ТАК отвечает: Замените визуальный компонент во времени выполнения в Delphi, Копировав компоненты во Времени выполнения
То, что Вы ищете, называют объектным постоянством. Эта статья могла бы помочь, и существуют многие другие, если Вы гуглите для "Дельфи, сохраняющего объекты".
Если Вы убываете свой объект от TComponent, можно использовать некоторую встроенную функциональность для потоковой передачи объекта в файл. Я думаю, что это только работает хорошо на простые объекты.
Некоторый пример кода для запущения Вас:
unit Unit1;
interface
uses
Classes;
type
TMyClass = class(TComponent)
private
FMyInteger: integer;
FMyBool: boolean;
FMyString: string;
public
procedure ToFile(AFileName: string);
published
property MyInteger: integer read FMyInteger write FMyInteger;
property MyString: string read FMyString write FMyString;
property MyBool: boolean read FMyBool write FMyBool;
end;
implementation
{ TMyClass }
procedure TMyClass.ToFile(AFileName: string);
var
MyStream: TFileStream;
begin
MyStream := TFileStream.Create(AFileName);
try
Mystream.WriteComponent(Self);
finally
MyStream.Free;
end;
end;
end.
Здесь существует хорошее учебное руководство. Следует иметь в виду, что у Вас должен быть RTTI (информация о типе выполнения) для сохранения объекта во времени выполнения с помощью этого подхода, таким образом, это только получит опубликованные свойства класса.
Также вы можете использовать JVCL TJvAppXMLFileStorage:
использует JvAppXMLStorage;
вар
Хранение: TJvAppXMLFileStorage;
начать
Хранение: = TJvAppXMLFileStorage.Create (nil);
пытаться
Storage.WritePersistent ('', MyObject);
Storage.Xml.SaveToFile ( 'S: \ TestFiles \ test.xml');
Storage.Xml.LoadFromFile ( 'S: \ TestFiles \ test.xml');
Storage.ReadPersistent ('', MyObject);
наконец-то
Storage.Free;
конец;
конец;
Вы уже получили некоторые хорошие ответы на свой вопрос. В зависимости от того, что Вы на самом деле делаете, могло бы быть желательно пользоваться предварительно созданной библиотекой или компонентом для сохранения объектов. Это - недорогой и изящный набор библиотеки/компонента, который делает это тривиальным, чтобы сохранить и восстановить объекты, и довольно легко (т.е. с определенным кодом) размещает сохранение даже неопубликованных членов объекта: http://www.deepsoftware.ru/rsllib/index.html Не что-то, это - аэрокосмические исследования, но если Вы делаете много этого вида вещи этот компонент, служит хорошей основой для него.
Developer Express также включает общую цель cxPropertiesStore компонент как часть библиотеки ExpressEditors, которая идет с некоторыми их компонентами.